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.