在Object类中,clone方法被声明为protected
Employee类实现了Cloneable接口的话,在类里面可以直接用clone()方法,如下:
Employee e = new Employee("e1", 1000);
Employee c;
c = e.clone();
如果同一个包里有另一个测试类来测试,在这个类里调用上述代码是不行的;
如果这个测试类本身实现了Cloneable接口,那也是这个类自身可以调用Object.clone()方法,例如:
这个测试类叫做Test.java
public class Test implements Cloneable {
public static void main(String[] args) throws CloneNotSupportedException
{
Employee e = new Employee("e1", 1);
Employee c = e.clone(); //wrong
Test t= new Test();
Test tc = (Test)t.clone();
}
}
要想在Test类里让Employee调用clone(),可以在Employee类实现Cloneable接口,并且在Employee类中重写clone()方法,即自己定义要克隆的域和方法,然后可以在Test类里调用如下
Employee e = new Employee("e1", 1);
Employee c = e.clone();
代码。