📜  科特林-密封课

📅  最后修改于: 2020-12-30 07:04:39             🧑  作者: Mango


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

sealed class MyExample {
   class OP1 : MyExample() // MyExmaple class can be of two types only
   class OP2 : MyExample()
}
fun main(args: Array) {
   val obj: MyExample = MyExample.OP2() 
   
   val output = when (obj) { // defining the object of the class depending on the inuputs 
      is MyExample.OP1 -> "Option One has been chosen"
      is MyExample.OP2 -> "option Two has been chosen"
   }
   
   println(output)
}

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

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

option Two has been chosen