是java中的所有方法都隐含虚拟

Aru*_*run 23 java

如果java中没有编译时绑定,这是否意味着所有绑定都是在运行时完成的?

但是根据OOPs的运行时绑定概念,函数必须有虚拟关键字.在java中隐式虚拟的所有方法或java中是否存在任何编译时绑定

如果有任何编译时绑定,您可以给我一些具体情况,或链接到更多信息

  1. 静态(这里没有绑定的意思,因为静态不属于对象)
  2. final(这不是一个有效点,因为它可以用另一种方式获得)

Tom*_*icz 40

默认情况下,Java中的所有非static,非final和非private方法都是虚拟的.但是,JVM足够聪明,只能找到只有一个给定方法实现的类,并将其转换为静态绑定.

这样你就不必记住virtual关键字(由于virtualC++中的析构函数丢失而经历过的内存泄漏?),而性能不会受到太大影响.

  • @Arun您不需要证明 - 这就是语言的定义方式.如果需要,可以在[Java语言规范](http://docs.oracle.com/javase/specs/)中查找. (9认同)
  • 我们如何证明非静态非私有方法是虚拟的.. (2认同)

eme*_*esx 5

非静态方法调用是Java的主要(唯一)动态方面.所有方法都是Java中的虚拟方法.这不适用于基于静态对象类型在编译时绑定的静态方法.