Junior — Middle
Lze v Kotlinu změnit implementaci metody v děděné třídě bez změny zdrojového kódu této metody v základní třídě?
sobes.tech AI
Odpověď od AI
Ano, v Kotlinu je možné změnit implementaci metody v odvozené třídě bez změny zdrojového kódu základní třídy pomocí mechanismu přepsání (override). Pro to musí být metoda v základní třídě deklarována s modifikátorem open.
Příklad:
open class Base {
open fun greet() {
println("Ahoj z Base")
}
}
class Derived : Base() {
override fun greet() {
println("Ahoj z Derived")
}
}
fun main() {
val obj: Base = Derived()
obj.greet() // Vypíše: Ahoj z Derived
}
Tímto způsobem lze bez změny základní třídy změnit chování metody v odvozené třídě.