深度clone的简单实现

来源:互联网 发布:淘宝赵信翼骑统领皮肤 编辑:程序博客网 时间:2024/06/04 19:08
public class DeepClone {public static void main(String args[]) throws CloneNotSupportedException{Student student=new Student();Teacher teacher=new Teacher();student.setAge(20);student.setName("wang xue");student.setTeacher(teacher);teacher.setAge(30);teacher.setName("lucy");Student stu=(Student)student.clone();teacher.setName("lily");System.out.println(stu.getAge()+" "+stu.getName()+" "+stu.getTeacher().getName()+" "+stu.getTeacher().getAge());;}}class Teacher implements Cloneable{private int age;private String name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubTeacher teacher=(Teacher)super.clone();return teacher;}}class Student implements Cloneable{private Teacher teacher;private int age;private String name;public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic  Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubObject object=super.clone();//浅cloneStudent stu=(Student)object;stu.setTeacher((Teacher)stu.getTeacher().clone());//深clonereturn stu;}}

0 0
原创粉丝点击