克隆就是对象复制概念。这种情况一般很少,因为很少有人去复制已经存在的对象,Object类本身就支持对象克隆的方法:protected Object clone()throws CloneNotSupportedException 要想实现克隆,需要实现克隆接口,而关键的是该接口没有任何的抽象方法,所以该接口只是一个标识接口。表示一种能力。
范例:对象克隆实现
1 package cn.Tony.demo; 2 3 class Person implements Cloneable{//必须实现此接口 4 private String name; 5 private int age; 6 public Person(String name, int age) { 7 super(); 8 this.name = name; 9 this.age = age; 10 } 11 public void setName(String name) { 12 this.name = name; 13 } 14 public void setAge(int age) { 15 this.age = age; 16 } 17 @Override 18 public String toString() { 19 return "Person [name=" + name + ", age=" + age + "]"; 20 } 21 @Override 22 protected Object clone() throws CloneNotSupportedException { 23 return super.clone();//父类负责克隆 24 } 25 } 26 public class TestDemo { 27 public static void main(String[] args) throws Exception { 28 Person perA=new Person("张三",10); 29 Person perB=(Person)perA.clone(); 30 perB.setAge(20); 31 System.out.println(perA); 32 System.out.println(perB); 33 } 34 }
对象克隆操作本身意义不大,关键是需要清楚标识接口的作用,表示一个能力,而不是操作方法。