Junior — Middle
Може ли у Kotlin-у променити имплементацију метода у наслеђеној класи без измене изворног кода тог метода у основној класи?
sobes.tech АИ
Одговор од АИ
Да, у Kotlin-у је могуће променити имплементацију метода у наследној класи без измене изворног кода основне класе, коришћењем механизма преоптерећења (override). За то, метод у основној класи мора бити декларативно означен са модификатором open.
Пример:
open class Base {
open fun greet() {
println("Здраво из Base")
}
}
class Derived : Base() {
override fun greet() {
println("Здраво из Derived")
}
}
fun main() {
val obj: Base = Derived()
obj.greet() // Исписа: Здраво из Derived
}
Овим путем, без измене основне класе, могуће је променити понашање метода у наследној класи.