Junior — Middle
Seal жана abstract ачкыч сөздөрү менен жарыяланган класстар арасындагы негизги айырмачылыктар эмнеде?
sobes.tech AI
AIден жооп
Kotlinде sealed жана abstract класстар ортосундагы негизги айырмачылыктар:
-
Мурас:
sealedкласс мурасчыларын чектейт: бардык подкласстар ошол эле файлда болушу керек.abstractкласс мурас алуу чектелбейт: подкласстар каалаган жерде болушу мүмкүн.
-
Колдонуу:
sealedкласстар чектелген варианттар топтомун көрсөтүү үчүн пайдалуу (мисалы,whenбилдирүүлөрүндөelseжок).abstractкласстар негизги класстарды түзүү үчүн колдонулат, алар жарым-жартылай ишке ашырылган.
-
Иштетүү:
- Эки класстын да түздөн-түз иштетилиши мүмкүн эмес.
sealed классты колдонуу мисалы:
sealed class Result {
data class Success(val data: String) : Result()
object Error : Result()
}
fun handle(result: Result) = when(result) {
is Result.Success -> println("Маалымат: ${result.data}")
Result.Error -> println("Ката кетти")
}