深拷贝:
可以理解为创建一个新的对象,并复制原对象的所有属性值。新对象属性改变时,不会影响到原对象
实现方法:
①定义一个类,实现Cloneable接口
②重写clone()方法
代码展示:
public class Dog implements Cloneable{
int age;
public Dog(int age) {
this.age = age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"age=" + age +
'}';
}
@Override
public Dog clone(){
try {
return (Dog) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new Dog(0);
}
}
}
测试用例:
Dog d1 = new Dog(10);
Dog d2 = d1.clone();
d2.setAge(14);
Log.d("test",d1.toString());
Log.d("test",d2.toString());
测试结果:
Dog{age=10}
Dog{age=14}