我知道什么是静态绑定和动态绑定。所以我的问题与此无关。
让我们看看静态绑定是怎么说的this:
1)Java中的静态绑定发生在编译时,而动态绑定发生在编译时
绑定发生在运行时期间。
2) 私有方法、最终方法和静态方法以及变量使用静态绑定并由编译器绑定,而虚拟方法是
在运行时期间基于运行时对象进行绑定。
3)静态绑定使用Type(Java中的Class)信息进行绑定
而动态绑定则使用Object来解析绑定。
3) 重载方法在重写时使用静态绑定进行绑定
方法在运行时使用动态绑定进行绑定。
让我们重点关注上面的一个方面:
现在我们看到静态绑定将类和实例变量绑定到它们的值,并将静态方法调用绑定到相关的方法体。
但在一些地方比如this,他们将绑定定义为
方法调用与方法体的关联称为绑定。
但绑定也绑定变量。
现在我很困惑。绑定仅与方法主体的方法调用相关,还是与变量与其值相关?我们如何定义绑定?
最一般地,“绑定”是将标识符与其标识的任何内容相关联,无论是方法、变量还是类型。
Java 中的所有绑定都是静态的(“早期”),但实例方法的绑定除外,实例方法的绑定可能是静态的或动态的(“晚期”),具体取决于方法的可访问性。
Java语言规范提到了在访问字段的上下文和访问实例方法的上下文中的绑定。第15.11章比较了字段绑定(静态)与实例方法绑定(动态),并提供了代码示例来对比这两种绑定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)