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