vz0*_*vz0 18
如果你创建一个新狗:
Dog a = new Dog("Mike");
Run Code Online (Sandbox Code Playgroud)
然后:
Dog b = a;
Run Code Online (Sandbox Code Playgroud)
你有一个Dog和两个引用相同的变量Dog.因此做:
a.putHatOnHead("Fedora");
if (b.hasHatOnHead()) {
System.out.println("Has a hat: " + b.getHatName());
}
Run Code Online (Sandbox Code Playgroud)
将打印出该狗有一顶Fedora帽子,因为a并b引用同一条狗.
相反,做:
Dog b = a.clone();
Run Code Online (Sandbox Code Playgroud)
现在你有两只狗克隆.如果你在每条狗上戴上帽子:
a.putHatOnHead("Rayden");
b.putHatOnHead("Fedora");
Run Code Online (Sandbox Code Playgroud)
每只狗都有自己的帽子.