class Money implements Cloneable{
double money = 12.5;
//重写clone方法
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
//实现克隆接口
class Person implements Cloneable{
public int age;
Money m = new Money();
//重写clone方法
@Override
protected Object clone() throws CloneNotSupportedException {
Person p1 = (Person) super.clone();//1.克隆person
p1.m = (Money)this.m.clone();//克隆当前的Money对象
return p1;
}
}
public class TestDemo {
public static void main(String[] args) throws CloneNotSupportedException {
Person person1 = new Person();
Person person2 = (Person) person1.clone ();
System.out.println(person1.m.money);
System.out.println(person2.m.money );
System.out.println("=======修改========");
person2.m.money = 999;
System.out.println(person1.m.money);
System.out.println(person2.m.money);
}
public static void main1(String[] args) throws CloneNotSupportedException {
Person person1 = new Person();
Person person2 = (Person) person1.clone();
System.out.println(person1.age);
System.out.println(person2.age);
person2.age = 99;
System.out.println("=======修改========");
System.out.println(person1.age);
System.out.println(person2.age);
}
}
java克隆接口
最新推荐文章于 2022-06-16 15:30:02 发布