深拷贝和浅拷贝

默认的克隆操作为浅拷贝,它并没有克隆包含在对象中的内部对象。

深拷贝指,重新定义clone方法,以便实现克隆子对象。

 

Object类中clone方法被声明为protected,无法直接调用anObject.clone()。

子类只能调用受保护的clone方法克隆自己(?)

实现Cloneable接口,将clone重新定义为public,并调用super.clone()。

class A implements Cloneable{

  public A clone() throws CloneNotSupportedException{

    return (A)super.clone();

  } 

}

 

深拷贝

class A implements Cloneable{

  Data d;

  public A clone() throws CloneNotSupportedException{

    A cloned = (A)super.clone();

    cloned.d = (Date)d.clone();

    return cloned;

  } 

}

posted @ 2015-07-08 17:16  Zorooooa  阅读(85)  评论(0)    收藏  举报