Java中的所有方法是否隐式都是虚拟的
问题内容:
如果Java中没有编译时绑定,是否意味着所有绑定都在运行时完成?
但是,按照OOP的运行时绑定概念,函数必须具有virtual关键字。.是否所有方法在Java中都是隐式虚拟的,还是Java中存在任何编译时绑定?
如果有任何编译时约束,您能给我一些具体情况,还是链接到更多信息
- 静态的(这里没有绑定的含义,因为静态不属于对象)
- 最终的(这不是有效点,因为可以通过其他方式实现)
问题答案:
所有非static
,非final
和非private
法中默认Java虚拟。但是,JVM非常聪明,可以找到仅具有给定方法的一种实现的类并将其转换为静态绑定。
这样,您就不必记住virtual
关键字(由于virtual
C ++中的析构函数丢失而导致内存泄漏吗?),而性能并没有受到太大的影响。