我知道这个问题已经被问过很多次了。
首先,Object.clone()
java 中的方法是本地方法,即它是在 JVM 中实现的,用户不需要知道它的实现。
我的问题是这种方法是否也是抽象的。如果不是,为什么必须在我们要克隆的类中重写它。
还有一个问题。它被覆盖如下
public Object clone() {
MyClass obj;
try {
obj = (MyClass)super.clone();
} catch(CloneNotSupportedException e) {
Statements
}
return obj;
}
在这段代码的第 4 行中,我们调用了super.clone()
方法,我们在这一行中调用了哪个clone()
方法,如果Object.clone()
方法我们为什么要覆盖它,我们可以简单地将它强制转换到我们想要克隆对象的任何位置,例如
MyClass obj2 = (MyClass)obj1.clone();
他们有什么办法知道Object.clone()
方法的编码吗?