密封类
密封类定义:sealed class
sealed class Tree{
}
object Tree1 : Tree() {}
class Tree2(val id: Int) : Tree() {}
class Tree3(val name: String) : Tree() {}
fun main() {
val treeAct: Tree = Tree2(0)
when (treeAct) {
is Tree1 -> println("Tree1")
is Tree2 -> println("Tree2")
is Tree3 -> println("Tree3")
}
}
密封类与枚举类的区别
| 状态 | 密封类 | 枚举类 |
|---|
| 状态实现 | 子类继承 | 类实例化 |
| 状态可数 | 子类可数 | 实例可数 |
| 状态差异 | 类型差异 | 值差异 |
密封类
密封类定义:sealed class
sealed class Tree{
}
object Tree1 : Tree() {}
class Tree2(val id: Int) : Tree() {}
class Tree3(val name: String) : Tree() {}
fun main() {
val treeAct: Tree = Tree2(0)
when (treeAct) {
is Tree1 -> println("Tree1")
is Tree2 -> println("Tree2")
is Tree3 -> println("Tree3")
}
}
密封类与枚举类的区别
| 状态 | 密封类 | 枚举类 |
|---|
| 状态实现 | 子类继承 | 类实例化 |
| 状态可数 | 子类可数 | 实例可数 |
| 状态差异 | 类型差异 | 值差异 |