【发布时间】:2012-10-02 15:05:58
【问题描述】:
scala 中的成员函数默认是虚拟的吗?在这件事上它和 Java 有什么不同吗?
当一个方法被覆盖时,你必须明确声明,但没有“虚拟”。
【问题讨论】:
标签: scala methods jvm overriding virtual
scala 中的成员函数默认是虚拟的吗?在这件事上它和 Java 有什么不同吗?
当一个方法被覆盖时,你必须明确声明,但没有“虚拟”。
【问题讨论】:
标签: scala methods jvm overriding virtual
scala默认成员函数是虚函数吗?
是的。
这件事和Java有什么不同吗?
不,在 Java 中方法也是虚拟的,除非它们被明确定义为 final。
然而,Java 与 Scala 的不同之处在于 Java 不需要(或没有)override 关键字来覆盖方法 - 它确实有一个 @override 注释(从 Java 1.5 开始)并在出现时发出警告您覆盖了没有该注释的方法。
【讨论】:
final def methodName(...) = ... 定义最终方法。
scala默认成员函数是虚函数吗?
是的。
这件事和Java有什么不同吗?
没有。但是它不同于 C++ 或 C#。
这是一个好主意还是坏主意是非常有争议的。
【讨论】: