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