我知道Scala允许在同一个班级同时使用abstract
和final
这有什么好处?
例如:
final abstract class Parent { ... }
上面的代码编译得很好。将它与Java进行比较时,不允许这样做。 另外,在定义两者时是否有任何逻辑?
答案 0 :(得分:4)
abstract
禁止实例化(new
...),而final
禁止子类化(new Class { ... }
),因此它们在这里都有不同的用途。
Scala中的这样一个示例类是Int
,它由JVM的原始整数类型表示。因为它是运行时的原始类型以及JVM不允许添加新原语这一事实,所以没有合法的方法来扩展这种类型。
除了除了它之外没有办法实例化它。通过给出文字(例如val value: Int = 5
)。