Java 中的方法重写与后期绑定详解
1. 后期绑定概述
后期绑定(Late Binding)是 Java 中一个重要的概念。在后期绑定中,方法调用在运行时才会被解析。例如,有如下代码情况:
// 假设存在 LateBindingSub 和 LateBindingSuper 类
LateBindingSuper lbSuper;
LateBindingSub lbSub = new LateBindingSub();
lbSuper = lbSub; // 第一行代码将 lbSub 赋值给 lbSuper
当执行 lbSuper.print() 时,运行时系统需要找到 print() 方法的代码。运行时系统发现 lbSuper 变量的运行时类型是 LateBindingSub 类,于是在 LateBindingSub 类中查找 print() 方法并执行。
与早期绑定(Early Binding)相比,后期绑定会有轻微的性能开销,因为方法调用是在运行时解析的。不过,编程语言可以使用许多技术(如虚方法表)来实现后期绑定,所以性能损失通常很小或可以忽略不计。后期绑定的好处远远超过了这点性能损失,它允许实现包含多态性。当编写像 a2.print() 这样的代码时, a2 变量在 print() 方法上表现出多态行为。同样的代码
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



