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
}
По този начин, без да се променя базовият клас, може да се промени поведението на метода в наследяващия клас.