在哪些情况下我应该使用这种方式:
public A clone() throws CloneNotSupportedException {
A clone = (A)super.clone();
clone.x= this.x;
return clone;
}
在哪些情况下我应该使用这种方式:
public ShiftedStack clone() throws CloneNotSupportedException {
return new A(this.x);
}
如果x
是最终的并且我想使用第一种方式,我该怎么办?
关于第一种方式,我的理解是这样的:我们克隆超类并向上转换它,导致一些成员未初始化。在此之后初始化这些成员。我的理解正确吗?
谢谢你。