Java:从层次结构声明混合类

Java:从层次结构声明混合类,java,object,Java,Object,假设您有一个动物遗传层次结构。动物类在顶部,哺乳动物、鱼类等低于该类,物种(狗、猫、鲑鱼等低于该类)。为什么有人会声明一个类,例如: 动物漫游者=新狗() 而不是 狗漫游者=新狗() 这样做的优点和缺点是什么?阅读关于多态性的文章这一问题以前被问过很多次。但其中一个关键思想是,通过使用Animal类型的变量而不是Dog类型的变量,您可以向将来维护代码的任何人传达,您没有对该变量使用任何特定于狗的逻辑。使用代码传达设计意图是可维护性的关键部分。

假设您有一个动物遗传层次结构。动物类在顶部,哺乳动物、鱼类等低于该类,物种(狗、猫、鲑鱼等低于该类)。为什么有人会声明一个类,例如:

动物漫游者=新狗()

而不是

狗漫游者=新狗()


这样做的优点和缺点是什么?

阅读关于多态性的文章这一问题以前被问过很多次。但其中一个关键思想是,通过使用
Animal
类型的变量而不是
Dog
类型的变量,您可以向将来维护代码的任何人传达,您没有对该变量使用任何特定于狗的逻辑。使用代码传达设计意图是可维护性的关键部分。