1.浅克隆:克隆对象的基本类型(引用类型:类,数组和接口不可克隆),通过实现Cloneable接口来重写clone()方法
class A (基本类型)
@Override
protected A clone(){
A a = null;
try {
a = (A)super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return a;
}
A a;(已有数据内容)
A aClone = a.clone(); (克隆复制)
2.深克隆:在浅克隆的基础上,可以克隆引用类型,也是实现Cloneable接口重写clone()方法
class B(包含引用类型A)
@Override
protected B clone(){
B b = null;
try {
b = (B)super.clone();
b.a = a.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return b;
}
B b;(已有数据内容)
B bClone = b.clone();(克隆复制)