4

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

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

4

2 回答 2

5

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

是的。

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

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

然而,Java 与 Scala 的不同之处在于 Java 不需要(或没有)override关键字来覆盖方法 - 它确实有一个@override注释(从 Java 1.5 开始),并且当您覆盖没有该注释的方法时会发出警告。

于 2012-10-02T15:08:15.450 回答
2

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

是的。

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

不,但是它与 C++ 或 C# 不同。

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

于 2012-10-02T15:08:17.980 回答