我正在阅读 Effective Java
中有关clone
的内容
它说在 clone
中,第一个被调用的方法必须是 super.clone()
在这种情况下,我想最终我们最终会调用 java.lang.Object
的 clone
进入层次结构链。
但我认为对象的克隆没有做任何事情。
查看代码我看到:
protected native Object clone() throws CloneNotSupportedException;
并且没有实现。
但是从段落来看,如果一个类只有原始字段调用
(ClassX) super.clone()
足以创建克隆。
但是怎么办? super.clone
属于对象
。
最佳答案
对象中的这个声明
protected native Object clone() throws CloneNotSupportedException;
... 表示clone
方法是在native代码中实现的;即幕后发生了魔法。
您可以放心,Object.clone()
实际上确实做了一些事情...只要您已声明您的类实现了 Cloneable
。但它的作用无法用普通的 Java 表达。
关于java - super的克隆是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10408732/