美文网首页
Kotlin 入门到进阶(23) -- 密封类

Kotlin 入门到进阶(23) -- 密封类

作者: 捉影T_T900 | 来源:发表于2025-02-06 00:03 被阅读0次
sealed class

密封类:sealed
用于声明一个密封类。
Enum Class:每个枚举都是枚举类的实例,可以直接使用
Sealed Class:密封类约束的子类只是一个类型,你可以为不同子类定义方法和属性,并对齐动态实例化
密封类,顾名思义就是密封的,定义的子类也必须在密封类中,之所以是枚举类的扩展,是因为除了使用常量定义有限值,还可以用子类灵活定义有限值,比如object定义的单例类,class定义的内部类
密封类通常与表达时一起使用。 由于密封类的子类将自身类型作为一种情况。 因此,密封类中的when表达式涵盖所有情况,从而避免使用else子句。

sealed class MyColor {
    class Yellow : MyColor()  //这每一个类,你可以看成相当于枚举类的一个常量

    class Red : MyColor()

    class Black : MyColor()
}

fun evals(color: MyColor) = when (color) {  //我们具体需要哪一种
    is MyColor.Yellow -> println("yellow")
    is MyColor.Red -> println("red")
    is MyColor.Black -> println("black")
}

fun main(args: Array<String>) {
    evals(MyColor.Black()) 
}

相关文章

网友评论

      本文标题:Kotlin 入门到进阶(23) -- 密封类

      本文链接:https://www.haomeiwen.com/subject/tpduujtx.html