我不完全理解在类的clone()方法中返回super.clone()的想法.首先,与它返回一个包含LESS数据而不是请求的超类的对象有关,因为超类"不是"子类,而是子类"是"超类.如果有一个长链子类,每个子类都调用super.clone(),为什么不会导致它最终在链的根处调用Object.clone(),这不是任何子类?
对不起,如果那令人困惑; 我有时会困惑自己
我已经编写了这个克隆方法,当Employee类的父类是抽象的,而父类中的clone()方法是abstract.I想用这个代码复制Employee的对象的原始数据类型,而不是复制每个原始数据单独键入,但此代码与我调用clone()方法的行有问题.(此代码在Employee类中)
public Object clone() {
Object obj = new Object();
Object object = obj.clone(); //Emphasis here
return object;
}
Run Code Online (Sandbox Code Playgroud)
错误是:Object类型的方法clone()不可见.
但是我的Employee类在类层次结构中,可以访问Object类中的protected clone()方法.
这是我简单的Employee类:
public class Employee extends Person implements Cloneable {
private int ID;
public Employee() {
ID = 0;
}
public void setID(int ID) {
this.ID = ID;
}
public int getID() {
return ID;
}
public Object clone1() throws CloneNotSupportedException {
try {
Object obj = new Object();
Object object = obj.clone();
return object;
} catch (CloneNotSupportedException ex) …Run Code Online (Sandbox Code Playgroud)