package cn.edu.test_03;
public class Teacher implements Cloneable{
public String name;
public String age;
public Teacher(String name,String age){
this.name=name;
this.age=age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
Object o=null;
o=super.clone();
return o;
}
}
package cn.edu.test_03;
public class Student implements Cloneable{
public String name;
public String age;
public Teacher teac;
public Student(String name,String age,Teacher teac){
this.name=name;
this.age=name;
this.teac=teac;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
Student std=null;
std=(Student)super.clone();
//对teac对象进行克隆
std.teac=(Teacher)teac.clone();
return std;
}
}
调用
package cn.edu.test_03;
public class App {
/**
* @param args
* @throws CloneNotSupportedException
*/
public static void main(String[] args) throws CloneNotSupportedException {
// TODO Auto-generated method stub
Teacher teac=new Teacher("teacherName","teacherAge");
Student std=new Student("name","age",teac);
Student std1=(Student)std.clone();
std1.age="std1Age";
System.out.println(std.age);
System.out.println(std1.age);
}
}