Sobes.tech
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ć.