2-知识点汇总:
1、密封类的作用
当一个值必须是一群限定类型中某个类型时,密封类可以表示限制型类的结构。在一定意义上,是枚举类的扩展。
2、密封类和枚举的区别
枚举常量作为单例实体只能存在一个。密封类的子类能有很多实例。
3、密封类要点
- 使用
sealed
修饰符- 密封类的子类必须和密封类在同一个文件中
- Kotlin 1.1 前,子类必须嵌套在密封类声明的内部。
- 密封类本身是
abstract
的,因此不能直接实例化,并可以有抽象成员- 密封类默认有
private
构造器(禁止有非私有的构造器)- 继承自密封类子类的类(间接继承),可以在其他地方使用。
4、 密封类核心好处:
在
when表达式
中使用。密封类有可能列举出所有类型,因此不需要else
。但是这仅仅生效在你将when
作为表达式(获取值)而不是作为语句的时候。