Чем ограничены возможности использования sealed class в языке программирования?

Sealed class в Kotlin ограничены тем, что все их подклассы должны быть объявлены в том же файле, что и сам sealed класс.

Короткий ответ

Что ответить на собеседовании

Sealed class в Kotlin ограничены тем, что все их подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать все возможные варианты наследников и использовать это для проверки полноты при выражениях when.

Подробный разбор

Ответ с пояснениями

Sealed class в Kotlin ограничены тем, что все их подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать все возможные варианты наследников и использовать это для проверки полноты при выражениях when.

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

Пример:

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

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Данные: ${result.data}")
        is Result.Error -> println("Ошибка")
    }
}

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку