定义:
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。
在什么情况下使用:
1、代表有限的状态集:
在建模状态机或处理具有有限状态的业务逻辑时,密封类是一个理想的选择。
2、安全的类型检查:
使用密封类可以确保 when 表达式涵盖所有可能的情况,从而避免漏掉某些分支。
使用场景举例:
表示 UI 的不同状态,如加载、成功和错误。
创建举例:
//创建
sealed class State{
object YES: State()
object ING: State()
object NO(val msg: String): State()
}
使用举例:
//创建和声明