实现Cloneable接口,重新定义clone方法,指定public修饰符
浅拷贝:
拷贝数值或其他基本类型
对于子对象会得到另一个引用,原对象和克隆对象仍共享子对象
示例:
class A implements Cloneable {
public A clone() {
try {
return (A) super.clone();
} catch(CloneNotSupportedException e) {
return null;
}
}
}
深拷贝:
拷贝数值或其他基本类型
克隆所有子对象
示例:
class A clone() implements Cloneable {
public A clone() {
try {
A cloned = (A) super.clone();
cloned.b = (B) b.clone();
return cloned;
} catch (CloneNotSupportedException e) {
return null;
}
}
}