Sobes.tech
Junior — Middle

In Kotlin, è possibile modificare l'implementazione di un metodo in una classe ereditaria senza modificare il codice sorgente di quel metodo nella classe base?

sobes.tech AI

Risposta dell'AI

Sì, in Kotlin è possibile modificare l'implementazione di un metodo in una classe derivata senza modificare il codice sorgente della classe base, utilizzando il meccanismo di overriding (override). Per farlo, il metodo nella classe base deve essere dichiarato con il modificatore open.

Esempio:

open class Base {
    open fun greet() {
        println("Ciao da Base")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Ciao da Derived")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Stampa: Ciao da Derived
}

In questo modo, senza modificare la classe base, è possibile cambiare il comportamento del metodo nella classe derivata.