这是我写的三个类,在test类中访问clone方法为什么不行,我知道clone方法在Object类中定义的是protected,但我还是不明白,请高手给我讲一下,不胜感激!
package chapter8a_2;public class Student implements Cloneable{
private String name;
private int age;
private Teacher t; public Student(String name, int age, Teacher t) {
super();
this.name = name;
this.age = age;
this.t = t;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Teacher getT() {
return t;
}
public void setT(Teacher t) {
this.t = t;
}
}
package chapter8a_2;public class Teacher implements Cloneable{
private int age;
public Teacher(int age) {
super();
this.age = age;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}
package chapter8a_2;public class Test {
public static void main(String[] args) {
Student s=new Student("zhangsan",16,new Teacher(26));
Student s1=null;
s1=(Student)s.clone();在这里出错 }}
package chapter8a_2;public class Student implements Cloneable{
private String name;
private int age;
private Teacher t; public Student(String name, int age, Teacher t) {
super();
this.name = name;
this.age = age;
this.t = t;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Teacher getT() {
return t;
}
public void setT(Teacher t) {
this.t = t;
}
}
package chapter8a_2;public class Teacher implements Cloneable{
private int age;
public Teacher(int age) {
super();
this.age = age;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}
package chapter8a_2;public class Test {
public static void main(String[] args) {
Student s=new Student("zhangsan",16,new Teacher(26));
Student s1=null;
s1=(Student)s.clone();在这里出错 }}
Object o = null
o = super.clone();
return o;
}
这里还个异常: public Object clone() {
Object o = null;
try {
o = super.clone();
} catch(CloneNotSupportedException e) {
System.err.println("MyObject can't clone");
}
return o;
}