成员函数默认是虚拟的

时间:2012-10-02 15:05:59

标签: scala methods jvm override virtual

scala中默认情况下成员函数是虚拟的吗?在这件事上它与Java不同吗?

当一个方法被覆盖时,你必须明确说明,但没有“虚拟”。

2 个答案:

答案 0 :(得分:5)

  

scala中默认情况下成员函数是虚拟的吗?

  

在这件事上它与Java不同吗?

不,在Java方法中也是虚拟的,除非它们被明确定义为final

然而,Java与Scala的不同之处在于Java不需要(或拥有)override关键字来覆盖方法 - 它确实有@override注释(自Java 1.5起)和在覆盖没有该注释的方法时发出警告。

答案 1 :(得分:2)

  

scala中默认情况下成员函数是虚拟的吗?

  

在这件事上它与Java不同吗?

没有。但它与C ++或C#不同。

这是好主意还是坏主意是非常有争议的。