在 java 中分配给另一个对象的对象的好处

Benefit Of Object assigned to another object in java

我是 java 的初学者,我每天都从书本上学习。有一个问题困扰了我这么久,创建一个对象并给它一个另一个对象引用有什么用!我看到了太多这种格式的例子。

Cat simon = new Cat();
Animal tiger = simon;

这在很多不同的情况下都很有用(尽管作为通用术语,这是指 Polymorphism),我能想到的一个是 Parent 数组创建。 (在这种情况下,ParentAnimal class,由 Cat 进一步扩展)。

Animal[] animals = new Animal[] { simon, dog };

您可以简单地通过使用 Animal 父类型来引用列表中的每个项目,您不必担心它是进一步的类型 DogCat 等。

因此,假设您对此进行迭代并为每个元素调用 sound()/voice() 方法。如果方法定义在Parentclass(即Animal),你可以简单的做:

for (Animal animal : animals) {
  System.out.println(animal.voice());
}

对象引用本身的主要目的是告诉 Java 保留对象。否则,该对象中使用的内存将消失(由垃圾收集器回收)。并且,通过引用,您可以在 Animal 上触发 actions(如 simon.eat()simon.sleep())。没有参考,您将无法执行此操作。你在任何程序中所做的任何事情都必须通过参考保持(就像你上面所做的那样)。

AnimalCat之间的对象引用表明"I can treat Cat, Dog, Elephant, Eagle, Moose, etc. any animal that is an Animal like an Animal."(这叫做多态性。)

所以,Animal 可以有像 eat()sleep() 这样的动作,因为所有 Animal 都可以 eat()sleep()。但是,Eagle 也可以 fly()。因此,Eagle 定义了 fly() 操作。而且,您不会将 fly() 操作放在 Animal 中,因为并非所有 Animal 都可以 fly().