Sobes.tech
Junior — Middle

Czy w Kotlinie można zmienić implementację metody w klasie dziedziczącej bez zmiany kodu źródłowego tej metody w klasie bazowej?

sobes.tech AI

Odpowiedź od AI

Tak, w Kotlinie można zmienić implementację metody w klasie dziedziczącej bez zmiany kodu źródłowego klasy bazowej, korzystając z mechanizmu nadpisywania (override). W tym celu metoda w klasie bazowej musi być zadeklarowana ze słowem kluczowym open.

Przykład:

open class Base {
    open fun greet() {
        println("Cześć z Base")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Cześć z Derived")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Wypisze: Cześć z Derived
}

W ten sposób, bez zmiany klasy bazowej, można zmienić zachowanie metody w klasie dziedziczącej.