Junior — Middle
Kotlinban lehet-e megváltoztatni egy örökölt osztály metódusának megvalósítását anélkül, hogy módosítanánk az alap osztályban ennek a metódusnak a forráskódját?
sobes.tech MI
Válasz az MI-től
Igen, Kotlinben lehetőség van egy metódus implementációjának módosítására egy öröklődő osztályban anélkül, hogy megváltoztatnánk az alap osztály forráskódját, az override mechanizmus használatával. Ehhez a metódusnak az alap osztályban open módosítóval kell lennie.
Példa:
open class Base {
open fun greet() {
println("Helló a Base-ből")
}
}
class Derived : Base() {
override fun greet() {
println("Helló a Derived-ből")
}
}
fun main() {
val obj: Base = Derived()
obj.greet() // Kiírja: Helló a Derived-ből
}
Így az alap osztály módosítása nélkül is megváltoztatható a metódus viselkedése az öröklődő osztályban.