Учебники

Котлин — Запечатанный Класс

В этой главе мы узнаем о другом типе класса, который называется «Запечатанный» класс. Этот тип класса используется для представления ограниченной иерархии классов. Sealed позволяет разработчикам поддерживать тип данных предварительно определенного типа. Чтобы создать запечатанный класс, нам нужно использовать ключевое слово «запечатанный» в качестве модификатора этого класса. Запечатанный класс может иметь свой собственный подкласс, но все эти подклассы должны быть объявлены в том же файле Kotlin вместе с запечатанным классом. В следующем примере мы увидим, как использовать запечатанный класс.

Live Demo

sealed class MyExample {
   class OP1 : MyExample() // MyExmaple class can be of two types only
   class OP2 : MyExample()
}
fun main(args: Array<String>) {
   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» запечатан, мы можем применить условие «когда» во время выполнения для реализации окончательного результата.

В запечатанном классе нам не нужно использовать какой-либо ненужный оператор «else» для усложнения кода. Приведенный выше фрагмент кода выдаст следующий вывод в браузере.