java.lang.Cloneable是一个标示性接口,不包含任何方法,clone()方法在Object 类中定义。并且需要知道clone()方法是一个本地方法,这意味着它是由c或c++或其他本地语言实现的。
clone():它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用。
Java中一个类要实现clone功能必须实现Cloneable接口,否则在调用clone()会报 CloneNotSupportedException异常。
Java中所有类都默认继承java.lang.Object类,在 java.lang.Object类中定义了一个方法clone(),这个方法将创建并返回此对象的一个副本。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用:二是拷贝对象与用new操作符返回的新对象的区别就是这个拷贝已经包含了一些原有对象的信息,而不是对象的初始信息。
Cloneable接口是一个空接口,仅用于标记对象,Cloneable接口里面是没有clone()方法的,clone()方法是Object类里面的方法,默认实现是一个 native方法。
如果对象implement Cloneable接口的话,需要覆盖clone()方法(因为Object类的clone()方法是protected,需要覆盖为public)
Was this helpful?
0 / 0