要完成克隆的类必须具备以下两种条件
1、类必须实现Cloneable接口,表示可以被克隆:
Object 类本身不实现接口 Cloneable,所有的数组都被视为实现接口 Cloneable
2、类必须覆写Object类中的clone方法:
因为Object类中的clone方法为protected,要扩大方法的权限才能使用。
protected Object clone() throws CloneNotSupportedException
import java.util.*;
class Person implements Cloneable{//Cloneable为一个标识接口,表示可以被克隆
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.age;
}
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
}
public class TestClone{
public static void main(String args[]) throws CloneNotSupportedException{
Person p1 = new Person("张三",30);
Person p2 = (Person)p1.clone();
p2.name = "李四";
System.out.println(p1);
System.out.println(p2);
}
}
注意:
1、clone()方法返回Object应该进行转换Person p2 = (Person)p1.clone();
2、clone()方法抛出异常注意捕获