Scala中有两种类型的修饰符:final和sealed
它们之间有什么区别?什么时候应该使用另一个?
我有以下密封接口(Java 15):
public sealed interface Animal permits Cat, Duck {
String makeSound();
}
Run Code Online (Sandbox Code Playgroud)
该接口由 2 个类实现:
public final class Cat implements Animal {
@Override
public String makeSound() {
return "miau";
}
}
public non-sealed class Duck implements Animal {
@Override
public String makeSound() {
return "quack";
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我之间的差异final和non-sealed?final阻止我创建其他子类,但什么行为non-sealed适用于Duck?