多态性是一种自下而上的方法调用



我看到过关于OOP和Java的一般性讨论,其中的语句是"多态性只是一个自下而上的方法调用"。我不明白这是怎么回事。举个例子会很有帮助。

class Top {
   void foo() {...}
}
class Middle extends Top
class Bottom extends Middle

考虑方法foo()存在于Top中,但也可以存在于MiddleBottom中。如果你将对象声明为类型Top

Top obj = ...

你总是可以调用foo()方法。然而,obj也可能是Bottom类型,因此在多态情况下,您将在Bottom上调用foo(),如果Bottom没有foo(),则在Middle上调用它,如果Middle没有它,则在Top上调用它。

所以你的方法调用从BottomTop在某种程度上…

最新更新