【发布时间】:2017-09-07 09:49:08
【问题描述】:
我想澄清一些关于绑定和调度的事情。
绑定是将方法调用附加到方法签名。 Dispatch 正在选择方法实现。首先是绑定,然后是调度。好的,我知道了,但是:
- 没有被覆盖的实例方法是否使用静态绑定?
- 为什么重载方法使用静态绑定,因为它们是虚拟的并且可以在子类中被覆盖?
过去几天我读了很多解释,现在对我来说一团糟。其中一些是相互冲突的或完全相反的。据我所知,Java 中所有非static、非private 和非final 方法默认都是虚拟的,必须使用动态绑定和动态调度。
【问题讨论】:
-
1.不,因为它可能会被其他人覆盖。编译器不会知道方法没有被覆盖。异常是私有方法和最终方法,至少前者是静态绑定的。 2. 是什么让你觉得“重载方法使用静态绑定”?
标签: java