Sobes.tech
Назад к вопросам
Junior — Middle
70

В чем заключается предназначение класса, объявленного с помощью модификатора sealed?

Компании, где спрашивали
NordClan
GrowFood
ИннотехИннотех
Центр Инвест Банк
БрайтСофт
АВ Софт
ЯндексЯндекс
Ozon FreshOzon Fresh
IBS

Ответ от нейросети

sobes.tech AI

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

Например, в Kotlin sealed классы часто используются для представления ограниченного набора состояний или вариантов, что удобно при работе с 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}")
    }
}