Sobes.tech
Назад к вопросам
Junior — Middle
82

Можно ли в Kotlin изменить реализацию метода у наследуемого класса без изменения исходного кода этого метода в базовом классе?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Да, в Kotlin можно изменить реализацию метода у наследуемого класса без изменения исходного кода базового класса, используя механизм переопределения (override). Для этого метод в базовом классе должен быть объявлен с модификатором open.

Пример:

open class Base {
    open fun greet() {
        println("Hello from Base")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Hello from Derived")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Выведет: Hello from Derived
}

Таким образом, без изменения базового класса можно изменить поведение метода в наследнике.