Sobes.tech
Назад к вопросам
Junior — Middle
67

Возможно ли в Kotlin создать класс, помеченный как sealed, который будет наследоваться от другого sealed класса?

Компании, где спрашивали
RedLab

Ответ от нейросети

sobes.tech AI

В Kotlin класс, помеченный как sealed, может наследоваться от другого sealed класса. При этом наследник тоже может быть sealed, что позволяет создавать иерархии с ограниченным набором подклассов на нескольких уровнях. Главное условие — все подклассы sealed класса должны находиться в том же файле, что и сам sealed класс.

Пример:

sealed class Animal {
    sealed class Mammal : Animal() {
        class Dog : Mammal()
        class Cat : Mammal()
    }
    class Bird : Animal()
}

Здесь Mammal — это sealed класс, наследующийся от sealed класса Animal. Такой подход позволяет создавать более сложные иерархии с контролируемым набором наследников.