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.