Sobes.tech
Back to questions
Junior — Middle
94

Что подразумевается под классом с ограниченным наследованием и как он используется в Kotlin?

Answer from AI

sobes.tech AI

В Kotlin класс с ограниченным наследованием — это класс, который нельзя наследовать произвольно, а только от определённых классов или в определённых модулях. Для этого используется ключевое слово sealed (запечатанный класс).

Запечатанные классы позволяют ограничить иерархию наследования: все подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это удобно для реализации ограниченного набора вариантов, например, при работе с состояниями или результатами.

Пример использования sealed класса:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
    object Loading : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Данные: ${result.data}")
        is Result.Error -> println("Ошибка: ${result.error.message}")
        Result.Loading -> println("Загрузка...")
    }
}

Таким образом, sealed класс ограничивает наследование и позволяет компилятору проверять полноту when выражений.