Sobes.tech
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("Ката кетти")
}