Sobes.tech
Junior — Middle

Kaip galima pakeisti arba papildyti metodų elgesį paveldint pagrindinį klasę Kotlin'e?

sobes.tech AI

Atsakymas iš AI

Kotlin'e, pagrindinio klasės metodų elgesio keitimas ar papildymas paveldėjimo metu, naudojama raktinė frazė override. Metodas pagrindiniame klasėje turi būti deklaruotas su modifikatoriumi open, kad jį būtų galima perrašyti pogrupyje.

Pavyzdys:

open class Base {
    open fun greet() {
        println("Sveiki iš Base")
    }
}

class Derived : Base() {
    override fun greet() {
        super.greet()  // pagrindinio metodo iškvietimas
        println("Sveiki iš Derived")
    }
}

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

Šiame pavyzdyje, Base klasės greet metodas yra perrašomas Derived klasėje, iškviečiant originalią realizaciją per super.greet(), ir pridedant papildomą elgesį.

Norint pakeisti ar papildyti metodo elgesį:

  • Pagrindiniame klasėje metodas turi būti open.
  • Subklasėje metodas pažymimas override.
  • Originalų metodą galima iškviesti per super, kad jį papildytumėte, o ne pakeistumėte.