在java中所有的类都是继承Object类,Object类中protected方法应该所有它的子类都可以返问的到。    
为什么我声明了个自定义类的实例却调不到(Object类)中的clone方法    
 

解决方案 »

  1.   

    Java规定要使用clone()方法,必须要implements Cloneable接口事实上,Cloneable接口中并没有包含clone方法,也就是说,你不实现Cloneable接口,也可以
    调用clone()方法,只不过Object.clone()方法的实现会抛出一个CloneNotSupportedException异常。而如果你声明实现了Cloneable接口,那就可以调用clone方法啦,一般来说,你需要为你的类实现
    clone方法,而覆盖掉Object的默认实现,这绝对是需要的虽然不是必须的!Cloneable接口的这种用法是比较特殊的,是接口使用的极端例子
      

  2.   

    子类只能调用受保护的clone方法 克隆它自己,
    所以,必须重新定义clone方法 ,并将它声明为pubilc,这样才能让所有的方法克隆对象