使类具有克隆能力
- 克隆时要注意的两个关键问题是:
1.几乎肯定要调用 super.clone()
2.以及注意将克隆设为public。
- 实现Cloneable 接口
两方面的原因促成了Cloneable interface 的存在。
首先,可能有一个上溯造型句柄指向一个基础类型,而
且不知道它是否真的能克隆那个对象。在这种情况下,可用instanceof 关键字调查句柄是否确实同一个能克
隆的对象连接:
if(myHandle instanceof Cloneable) // ...
第二个原因是考虑到我们可能不愿所有对象类型都能克隆。所以Object.clone()会验证一个类是否真的是实
现了Cloneable 接口。若答案是否定的,则“掷”出一个CloneNotSupportedException 违例。所以在一般情
况下,我们必须将“implement Cloneable”作为对克隆能力提供支持的一部分。