Junior — Middle
Kaip galima pakeisti metodo elgesį klasėje, sukurtoje kitos klasės pagrindu?
sobes.tech AI
Atsakymas iš AI
Norint pakeisti metodo elgesį klasėje, sukurtoje remiantis kita (paveldėta) klase, naudojamas metodo perrašymo (override) mechanizmas. Subklasėje deklaruojamas metodas su tokiu pačiu pavadinimu ir signatūra kaip ir bazinėje klasėje, ir įgyvendinama nauja logika. Kai šis metodas kviečiamas subklasės objekte, naudojama būtent perrašyta versija.
Pavyzdys Kotlin (Android):
open class Animal {
open fun sound() {
println("Kai kurie bendri garsai")
}
}
class Dog : Animal() {
override fun sound() {
println("Laižymas")
}
}
fun main() {
val dog = Dog()
dog.sound() // Išves: Laižymas
}
Taip, perrašymas leidžia pakeisti paveldėto metodo elgesį.