Kotlin 密封类


在本章中,我们将学习另一种称为“密封”类的类。这种类型的类用于表示受限制的类层次结构。 Sealed 允许开发人员维护预定义类型的数据类型。要创建一个密封类,我们需要使用关键字“密封”作为该类的修饰符。密封类可以有自己的子类,但所有这些子类都需要与密封类一起在同一个 Kotlin 文件中声明。在下面的示例中,我们将看到如何使用密封类。

sealed class My例子 {
    class OP1 : My例子() // MyExmaple 类只能是两种类型
    class OP2 : My例子()
}
fun main(args: Array<String>) {
    val obj: My例子 = My例子.OP2()
   
    val output = when (obj) { // 根据输入定义类的对象
        is My例子.OP1 -> "Option One has been chosen"
        is My例子.OP2 -> "option Two has been chosen"
    }
   
    println(output)
}

在上面的例子中,我们有一个名为“My例子”的密封类,它只能有两种类型——一种是“OP1”,另一种是“OP2”。在主类中,我们在类中创建一个对象并在运行时分配其类型。现在,由于这个“My例子”类是密封的,我们可以在运行时应用“when”子句来实现最终输出。

在密封类中,我们不需要使用任何不必要的“else”语句来复杂化代码。上面的代码将在浏览器中产生以下输出。

option Two has been chosen