为什么克隆Object对象是不可能的?

时间:2014-10-21 14:37:40

标签: java

Object类具有用于创建完全重复对象的clone方法。这个方法适用于每个类,但为什么我不能创建Object类的对象副本?这种行为背后有哪些Java概念?

我尝试了两种不同的情况,但它不起作用。它给出了编译时错误:Object类型的方法clone()不可见

Object o = new Object();
Object o2 = o.clone();

Object o = new Test(); // Some Test class
Object o2 = o.clone();

1 个答案:

答案 0 :(得分:6)

Object.clone()具有受保护的访问权限(这就是您收到错误的原因),因此无法像这样直接调用。您必须在自己的类中重写clone()并使该类实现Cloneable接口。

从以下链接:

  

类Object本身并不实现Cloneable接口,所以   在类为Object的对象上调用clone方法   导致在运行时抛出异常。

有关详细信息,请参阅here