Назад к вопросам
Промсвязьбанк
Junior — Middle
79
Что такое запечатанный класс и какие его основные преимущества и особенности?
Компании, где спрашивали
m4bank
Joy Dev
Ответ от нейросети
sobes.tech AI
Запечатанный класс (sealed class) — это специальный вид класса в Kotlin (часто используемый в Android-разработке), который ограничивает иерархию наследования. Основная идея в том, что все подклассы запечатанного класса должны быть объявлены в том же файле, что и сам запечатанный класс.
Преимущества и особенности:
- Позволяет компилятору знать полный набор наследников, что улучшает безопасность и удобство при работе с
whenвыражениями — компилятор проверит, что все варианты обработаны. - Упрощает моделирование ограниченных иерархий, например, состояний или событий.
- Запрещает создание новых подклассов вне файла, что повышает контроль над архитектурой.
Пример:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Data: ${result.data}")
is Result.Error -> println("Error: ${result.error.message}")
}
}