Java:调用super.clone()的clone()操作

我没有完全理解在类的clone()方法中返回super.clone()的想法。首先,与之相关的返回一个对象是一个超类,其中所包含的LESS数据少于所请求的数据,因为一个超类“不是”子类,而是一个子类“是”超类。并且如果有一长串子类,每个子类都调用super.clone(),那为什么不导致它最终在不是子类的链的根部调用Object.clone()?

抱歉,这令人困惑;我有时会迷惑自己

回答:

clone()in 的实现Object检查实际类是否实现Cloneable,并创建该实际类的实例。

因此,如果要使您的类可克隆,则必须实现Cloneable并将结果 转换

super.clone()类。另一个负担是,即使您知道它不会发生(因为您的类实现了),对to的调用也super.clone()可能引发CloneNotSupportedException必须捕获的a

Cloneable

类上的Cloneable接口和clone方法Object很明显就是面向对象设计出错的情况。

以上是 Java:调用super.clone()的clone()操作 的全部内容, 来源链接: utcz.com/qa/427952.html

回到顶部