Ответ
Да, можно. В 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()
}
Это позволяет:
- Группировать связанные типы внутри интерфейса
- Расширять иерархию через наследование
- Сохранять все преимущества sealed-типов (полнота when-выражений и т.д.)
Важно, что все реализации должны быть объявлены в том же модуле, что и родительский sealed-тип.