Sobes.tech
Junior — Middle

Може ли в Kotlin да се промени реализацията на метод в наследен клас без да се променя изходният код на този метод в базовия клас?

sobes.tech AI

Отговор от AI

Да, в 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
}

По този начин, без да се променя базовият клас, може да се промени поведението на метода в наследяващия клас.