Можно ли добавить в sealed class sealed interface который содержит sealed class

«Можно ли добавить в sealed class sealed interface который содержит sealed class» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В Kotlin sealed классы и интерфейсы можно комбинировать, создавая сложные иерархии типов. Например:

sealed interface MyInterface {
    sealed class NestedClass : MyInterface {
        object Option1 : NestedClass()
        object Option2 : NestedClass()
    }
}

sealed class MyClass : MyInterface {
    object Option3 : MyClass()
    object Option4 : MyClass()
}

Это позволяет:

  1. Группировать связанные типы внутри интерфейса
  2. Расширять иерархию через наследование
  3. Сохранять все преимущества sealed-типов (полнота when-выражений и т.д.)

Важно, что все реализации должны быть объявлены в том же модуле, что и родительский sealed-тип.