Ответ
Sealed class позволяет ограничить иерархию наследования. Её наследниками могут быть только классы, объявленные в том же файле или вложенные классы (включая data, object и обычные классы).
Пример:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
object Loading : Result()
}
Ключевые ограничения:
- Наследники должны быть объявлены в том же файле.
- Можно использовать data class, object или обычные классы.
- В Kotlin 1.5+ разрешены наследники в разных файлах, но в одном модуле (с модификатором
sealed).