Ответ
Да, можно. Sealed class в Kotlin поддерживает множественную вложенность - то есть sealed class может содержать другие sealed classы или sealed interfaceы внутри себя. Главное, чтобы все наследники были объявлены в том же файле или вложенном классе.
Пример:
sealed class Response {
data class Success(val data: Data) : Response()
sealed class Error : Response() {
object NetworkError : Error()
data class ServerError(val code: Int) : Error()
}
}
Особенности:
- Вложенные sealed классы должны быть объявлены внутри родительского
- Все наследники должны быть в том же файле или вложенном классе
- Можно использовать для создания сложных иерархий состояний