在尝试使用密封特质时,我惊奇地发现如果在一个文件中写下如下代码:
sealed trait Sealed trait SealedChild extends Sealed并在另一个文件中写下如下代码:
trait SealedGrandchild extends SealedChild编译此代码会成功。为什么
SealedGranchild
可以被定义,即使它有一个密封的祖先类型在另一个文件中?除了显式声明 SealedChild
为sealed
外,是否有一种方法可以防止在其定义之外的文件中扩展SealedChild
?