本质上都是浅克隆
D d = new D(); D clone = (D)d.clone();
浅克隆
满足的条件:
1,克隆的对象的类实现cloneable接口
2,重写clone()方法
解释:
对象调用clone()方法会将自身的所有非引用对象的内容复制过来并返回一个对象,且属性值与原来的一样,内存地址不同
深克隆
满足的条件:
3,引用本身需要实现cloneable接口
深克隆本质上是浅克隆,复制过来的引用对象,内存地址与原来的都不同。