假设创建了五个类:
并且它们都是通过继承连接的,如图所示,newFruit是GoldenDelicious的一个实例,myOrange是Orange的一个实例。
以下是我的问题:
根据我对继承的理解,Apple(GoldenDelicious和Macintosh)的所有子类都有它的实例,但Apple(Fruit)的超类不会。为什么不是这样?
答案 0 :(得分:2)
(不考虑接口以保持简单;只讨论类继承)
如果你有一张图片中的继承树, 那么类的实例也将是所有父节点的实例,但不是兄弟节点的实例。
因为Java中的继承是"is a" relationship。
在现实世界中,如果newFruit
是GoldenDelicious
,那么它是 Apple
以及它' sa Fruit
。但GoldenDelicious
对象不是和Orange
。这似乎很直观。