obj.tea = (teacher)tea.clone() ;
return obj ;
}
public int getAge() ...{
return age;
}
public void setAge(int age) ...{
this.age = age;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public teacher getTea() ...{
return tea;
}
public void setTea(teacher tea) ...{
this.tea = tea;
}
}[SPAN]
若一个类要具有clone功能,那么必须继承Cloneable接口(该接口是一个标记接口,没有任何抽象方法,或许是为了某种标识吧),而且必须重写clone方法(这是一个Object类中的一个protected方法,可见性是包可见和子类可见,这样做的目的是包外的类不能访问该方法,但每一个类都会继承自Object类。因此我们得出一结论,如果在进行系统架构时,可以在根类中定义子类中要用到的方法,不能确定子类是否要使用的可定义为 protected类型,子类若想具有某种功能,只需要对该protected方法进行重写即可),然后在该方法中调用父类中的clone方法,在JDK 的源码中我们可能看下如下定义:
protected native Object clone() throws CloneNotSupportedException;