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

Овим путем, без измене основне класе, могуће је променити понашање метода у наследној класи.