我知道 Scala 允许在同一个类上同时使用 abstract
和 final
。
这样做有什么好处?
示例:
final abstract class Parent { ... }
上面的代码编译正常。与 Java 相比,这是不允许的。 另外,定义两者是否有任何逻辑?
最佳答案
abstract
禁止实例化 (new
...),而 final
禁止子类化
(new Class { . ..
),所以它们在这里都有不同的用途。
Scala 中的此类示例类是 Int
,它由 JVM 的原始整数 类型表示。因为它在运行时是原始类型,而且 JVM 不允许添加新的原始类型,所以没有合法的方法来扩展这种类型。
此外,除了给出一个文字(例如val 值:Int = 5
).
关于java - 在同一个 Scala 类上定义的抽象类和最终类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574565/