如果java中没有编译时绑定,这是否意味着所有绑定都是在运行时完成的?
但是根据运行时绑定的 OOP 概念,函数必须具有 virtual 关键字。所有方法在 java 中都是隐式虚拟的,或者 java 中是否存在任何编译时绑定
如果有任何编译时绑定,你能给我一些具体的情况,或者更多信息的链接
- 静态(这里没有绑定的意义,因为静态不属于对象)
- final (这不是一个有效点,因为它可以通过另一种方式实现)
如果java中没有编译时绑定,这是否意味着所有绑定都是在运行时完成的?
但是根据运行时绑定的 OOP 概念,函数必须具有 virtual 关键字。所有方法在 java 中都是隐式虚拟的,或者 java 中是否存在任何编译时绑定
如果有任何编译时绑定,你能给我一些具体的情况,或者更多信息的链接
在 Java 中,所有 non- static
、 non-final
和 non-private
方法默认都是虚拟的。然而,JVM 足够聪明,可以找到只有一种给定方法实现的类,并将其转换为静态绑定。
这样您就不必记住virtual
关键字(由于 C++ 中的析构函数丢失而导致内存泄漏virtual
?),而性能不会受到太大影响。
非静态方法调用是 Java 的主要(唯一)动态方面。Java中的所有方法都是虚拟的。这不适用于基于对象的静态类型在编译时绑定的静态方法。
我们不能在子类中覆盖的方法通常称为非虚拟方法。
在 Java 中,默认情况下,私有和最终方法是非虚拟的。其他方法默认是虚拟的。