什么是动态方法分派?它与继承有何关系?
问题内容:
Java中的 动态调度 是什么意思,为什么在继承的上下文中需要它?
问题答案:
Java […]中的 动态调度 是什么意思?
将“调度”视为“确定要调用的方法”。
“动态”部分只是说它是在运行时确定的。即,在运行时确定要调用的方法。
为什么在继承的背景下需要它
没有继承/多态性,我们将不需要此。表达式的类型在编译时是可确定的,并且在编译程序时将知道在运行时将调用哪种方法。
对于继承/多态,我们不知道表达式的具体运行时类型,因此必须在运行时“动态”确定要调用的方法。
没有动态分派,虚拟方法将毫无意义,这对于抽象和封装至关重要。
推荐阅读:维基百科上有关动态调度的文章