在Employee里重新定义clone()方法吧,Object的 clone()方法是私有的。你可以定义一个Employee.myClone():
public Object myClone()
{
  return this.clone();
}

解决方案 »

  1.   

    对象应该实现cloneable接口
    在对象内部做clone()应该做的事,返回该类的一个新的实现吧
      

  2.   

    就像c++的"="符号一样,clone也是必须自己来实现的.系统目前还不具有这种功能.
      

  3.   

    关于这个问题我思考了一下,大概可以这么理解,不对发地方请大家指正:首先OBJECT.CLONE()是PROTECTED类型。为什么呢?
    目的就是各个具体类要定义自己的CLONE(),而不只是简单的调用继承自OBJECT的CLONE()。因为OBJECT在设计自己的CLONE()时对于各个具体类究竟是什么样子根本不知道。所以为了强制每个类都定义自己的CLONE(),那么不管你继承自OBJECT的CLONE()是否满足需求,你还是必须定义自己的CLONE(),只不过在里面只要简单调用一下SUPER.CLONE()就OK了。我现在不明白的地方在:JAVA在实现这种机制时采用的方法因为OBJECT.CLONE()是PROTECTED类型,所以只能够通过在派生类中使用。在其他地方既不能直接使用,也不能够通过一个基类的REFERENCE来调用。
    但是在:
          Employee original=new Employee();
          Employee copy=(Employee)original.clone()
    难道original不是OBJECT的一个基类对象吗????????????现在做一个假设:如果把OBJECT.CLONE()定义为PUBLIC,那么在:
          Employee original=new Employee();
          Employee copy=(Employee)original.clone()就可以了吗???????如果我在Employee 里面没有重新定义CLONE(),但是Employee 里面存在继承自BJECT的为PROTECTED的CLONE()。如果将如果把OBJECT.CLONE()定义为PUBLIC,会怎么样???
      

  4.   

    上面的问题可以这样问:为什么将OBJECT.CLONE()定义为PROTECED,就能够保证派生类必须定义自己的CLONE(),而不能够直接使用继承来的CLONE()。
      

  5.   

    我对clone()进行了重新定义但还是不行(跟楼主一样的)还是说:clone() has protected access in java.lang.Object希望楼主解决之后记得告诉我:[email protected],谢谢先。
      

  6.   

    think in java里有详细说明这个方面。建议查阅。
      

  7.   

    如五星红旗所说,要implements Cloneable