在同一Scala类上定义的Abstract和Final类

时间:2016-01-03 08:12:08

标签: java scala class abstract final

我知道Scala允许在同一个班级同时使用abstractfinal 这有什么好处? 例如:

final abstract class Parent { ... }

上面的代码编译得很好。将它与Java进行比较时,不允许这样做。 另外,在定义两者时是否有任何逻辑?

1 个答案:

答案 0 :(得分:4)

abstract禁止实例化(new ...),而final禁止子类化(new Class { ... }),因此它们在这里都有不同的用途。

Scala中的这样一个示例类是Int,它由JVM的原始整数类型表示。因为它是运行时的原始类型以及JVM不允许添加新原语这一事实,所以没有合法的方法来扩展这种类型。
除了除了它之外没有办法实例化它。通过给出文字(例如val value: Int = 5)。