【发布时间】:2011-11-16 17:59:58
【问题描述】:
如果一个类不是Cloneable,则不能克隆该类的任何对象。那为什么clone()保留在Object类中而不是Cloneable接口中呢?
【问题讨论】:
-
这可能有点离谱,但它可能适用于某种形式的多态性,例如foreach
Object在一个集合中,尝试克隆它,如果它成功做一件事,如果它抛出异常做另一件事。 -
@Joachin 和 e-MEE 这些答案一点帮助都没有。他们说
Cloneable已“损坏”,但没有对 OP 提出的问题提供任何解释(即:“为什么将 clone() 方法保留在 Object 中?”) -
@NullUserException, this particular answer helps 在每一位。在首次引入
Object之后从Object中删除它会破坏 Sun 错误数据库条目的向后兼容性。答案就在 Java 历史的那个领域,为了我们的孩子,我们做出了决定并且不能改变。