【发布时间】:2013-10-13 09:41:29
【问题描述】:
我知道这个问题已经被问过很多次了。
首先java中的Object.clone()方法是本地方法,即它是在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()方法的编码吗?
【问题讨论】:
-
为什么我们需要重写这个方法?