Back to questions
Иннотех
Яндекс
Ozon Fresh
Junior — Middle
69
В чем заключается предназначение класса, объявленного с помощью модификатора sealed?
Companies where asked
NordClan
GrowFood
Центр Инвест Банк
БрайтСофт
АВ Софт
IBS
Answer from AI
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}")
}
}