Junior — Middle
Jak można zmienić lub uzupełnić zachowanie metod podczas dziedziczenia po klasie bazowej w Kotlin?
sobes.tech AI
Odpowiedź od AI
W Kotlinie, aby zmienić lub dodać zachowanie metod klasy bazowej podczas dziedziczenia, używa się słowa kluczowego override. Metoda w klasie bazowej musi być zadeklarowana z modyfikatorem open, aby można ją było nadpisać w podklasie.
Przykład:
open class Base {
open fun greet() {
println("Cześć z Base")
}
}
class Derived : Base() {
override fun greet() {
super.greet() // wywołanie metody klasy bazowej
println("Cześć z Derived")
}
}
fun main() {
val obj = Derived()
obj.greet()
}
W tym przykładzie metoda greet klasy Base jest nadpisywana w klasie Derived, przy czym wywoływana jest oryginalna implementacja przez super.greet(), a następnie dodawane jest dodatkowe zachowanie.
Aby zmienić lub dodać zachowanie metody:
- W klasie bazowej metoda musi być
open. - W podklasie metoda oznaczona jest
override. - Można wywołać oryginalną metodę przez
super, aby ją uzupełnić, a nie zastąpić.