如果在java中没有编译时绑定,这是否意味着所有绑定都是在运行时完成的?java中的所有方法都是虚拟的
但按照哎呀概念运行时绑定,函数必须具有虚拟keyword..ARE所有方法隐含在java虚拟还是有在java中
任何编译时绑定存在。如果有任何编译时绑定,可以你能给我一些具体的情况,或链接到进一步的信息
- 静态(没有在这里结合静态不属于对象的意思)
- 最终(这是不是因为它可以是一个有效点以另一种方式实现)
如果在java中没有编译时绑定,这是否意味着所有绑定都是在运行时完成的?java中的所有方法都是虚拟的
但按照哎呀概念运行时绑定,函数必须具有虚拟keyword..ARE所有方法隐含在java虚拟还是有在java中
任何编译时绑定存在。如果有任何编译时绑定,可以你能给我一些具体的情况,或链接到进一步的信息
非静态方法调用是Java的主要(唯一)动态方面。所有的方法在Java中都是虚拟的。这不适用于基于静态类型的对象在编译时绑定的静态方法。从维基的虚拟
定义:
在面向对象的编程中,虚拟函数或虚拟方法是一个函数或方法,其行为可被继承类内由函数具有相同签名的覆盖,以提供多态行为。
因此根据定义,JAVA中的每个非静态方法都是默认的虚拟方法,除了final和private方法。无法为多态行为继承的方法不是虚拟方法。
我们无法在子类中重写的方法通常称为非虚拟方法。
在Java静态,私有&默认情况下,最终方法是非虚拟的。其他方法默认是虚拟的。
“没有编译时绑定在java中” - 不正确。当然,*执行*是在执行时挑选出来的,但是重载解析和检查方法的简单行为存在并且可访问,听起来就像是编译时绑定到我的。或许你的意思是根据你最后一段的“绑定”这个词的意思。 –