在Java中所有的类都是Object的子类。
在Object类中有一个clone方法定义如下:
protected native Object clone() throws CloneNotSupportedException;
该方法的修饰符为protected,表示该方法可以在子类中调用
然后结果是调用不了
网上有回答是需要实现Cloneable接口,但即使实现了,也调用不到。
不实现Cloneable接口,只是报CloneNotSupportedException异常。
只能重写clone方法,并且使用super.clone()
疑惑这是为什么呢?
Cloneable接口仅仅是个标志,他里面是空的
Object的clone方法是本地方法,比较有效率
使用clone方法的几个条件
2)为了获取对象的一份拷贝,我们可以利用Object类的clone方法。
3)在派生类中覆盖积累的clone方法,声明为public。
4)在派生类的clone方法中,调用super.clone()。
再具体的你可以参考
http://www.cnblogs.com/gw811/...
可以调用啊:
clone() 是protected的作用域。继承Cloneable接口后要重写方法,然后在方法里调用父类的clone()的方法。同时默认的克隆对于引用对象只是浅克隆。给你一段代码自己去运行试试吧:
其中A继承了cloneable接口,同时持有了对B的引用。
实现接口Cloneable,重写clone()方法。
刚看我也很疑惑,试了一下,发现是直接调用object中的clone方法的。
代码如下:
public class CommonTest implements Cloneable{
}