Sobes.tech
Назад к вопросам
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}")
    }
}