java中克隆的使用
1) 在被克隆类中,要提供实现克隆的接口:
class Cat implements Cloneable{
}
2) 在被克隆的类中重写clone方法,使其public化
class Cat implements Cloneable{
public Object clone()throws CloneNotSupportedException{
retunr super.clone();//返回父类的clone方法,抛出异常
}
}
3) 需要克隆的类
//通过向下转型将克隆的Object类型转换为想要的类型.
public class CloneCatTest {
public static void main(String[] args) throws CloneNotSupportedException {
Cat c = new Cat();
Object o=c.clone();//向下转型
Cat cat=(Cat) o;
System.out.println(cat);//@7852e922
System.out.println(c);//@4e25154f
}
}//注意事项见第4点
4) 克隆出来的副本和原来的类new的地址不同,但是成员变量值相同,这属于浅拷贝。