什么是动态方法分派?它与继承有何关系?


问题内容

Java中的 动态调度 是什么意思,为什么在继承的上下文中需要它?


问题答案:

Java […]中的 动态调度 是什么意思?

将“调度”视为“确定要调用的方法”。

“动态”部分只是说它是在运行时确定的。即,在运行时确定要调用的方法。

为什么在继承的背景下需要它

没有继承/多态性,我们将不需要此。表达式的类型在编译时是可确定的,并且在编译程序时将知道在运行时将调用哪种方法。

对于继承/多态,我们不知道表达式的具体运行时类型,因此必须在运行时“动态”确定要调用的方法。

没有动态分派,虚拟方法将毫无意义,这对于抽象和封装至关重要。

推荐阅读:维基百科上有关动态调度的文章