kotlin 中有一个关键字 sealed, 可以用于声明密封类或接口,密封类/接口的所有继承者 都需要在编译时明确。因此如果你开发的代码库中声明了密封类,第三方使用者是不能继承 该类的,同样不能实现密封接口
一个密封类是自身抽象的,它不能直接实例化并可以有抽象(abstract)成员
密封类的构造器只能是两种类型:protected (by default) or private
使用密封类的其中一个关键好处在于使用 when 表达式的时候,如果能够验证语句覆盖了所 有情况,就不需要为该语句再添加一个 else 子句了