例如, A类实现了clone-able,它是一个抽象类, B类扩展 A类。
假设我只在 B类中需要克隆方法。 我还需要使用
吗?A result = (A)super.clone();
clone
方法中的?
答案 0 :(得分:0)
不,您可以在clone()
中实施B
作为:
public B clone() {
try {
return (B) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(e);
}
}
注意:clone()
接口中未定义Cloneable
方法。 Cloneable
只是一个所谓的“标记”界面。因此,A
根本不需要clone()
方法。
(您也可以将该方法声明为抛出CNSE并让调用者处理它。请注意,clone()
和Cloneable
现在有点不受欢迎。请考虑简单地提供一个复制构造函数需要B
并复制其字段的值。)