浅拷贝:只复制当前的对象,对该对象内部的引用不复制
深拷贝:对对象内部的引用均复制,是创建一个新的实例,并复制实例。即在重写clone()时,会对内部的引用也进行clone
class Son implements Cloneable{
//其他操作
@Override
public Object clone() {
Son son=null;
try {
son=(Son)super.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return son;
}
}
class Father implements Cloneable{
//其他操作
Son son;
@Override
public Object clone() {
Father father=null;
try {
father=(Father)super.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
father.son=(Son)son.clone();//深拷贝:就是对引用的对象单独拷贝一次哦。
return father;
}
}