Sobes.tech
Junior — Middle

Kotlin'da asosiy sinfdan meros olishda metodlarning xulq-atvorini qanday o'zgartirish yoki to'ldirish mumkin?

sobes.tech AI

AIdan javob

Котлинда, асосий синфнинг методларининг хулосасини ўзгартириш ёки қўшиш учун override калит сўзидан фойдаланилади. Асосий синфдаги метод open модификатори билан эълон қилинган бўлиши керак, шунинг учун унинг ўрнига қўйилиши мумкин бўлади.

Масалан:

open class Base {
    open fun greet() {
        println("Baseдан салом")
    }
}

class Derived : Base() {
    override fun greet() {
        super.greet()  // асосий синфнинг методини чақириш
        println("Derivedдан салом")
    }
}

fun main() {
    val obj = Derived()
    obj.greet()
}

Бу мисолда, Base синфининг greet методу Derived синфида қайта ишланади, super.greet() орқали оригинал амалга оширилади ва кейин қўшимча хулосалар қўшилади.

Шунинг учун, методнинг хулосасини ўзгартириш ёки қўшиш учун:

  • Асосий синфда метод open бўлиши керак.
  • Подсинфда метод override билан белгиланади.
  • Оригинал методни super орқали чақириш мумкин, бу билан унинг қўшимча ёки алмаштирилган ҳолати қўшилади.