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

Каким образом можно изменить или дополнить поведение методов при наследовании базового класса в Kotlin?

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

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

sobes.tech AI

В Kotlin для изменения или дополнения поведения методов базового класса при наследовании используется ключевое слово override. Метод в базовом классе должен быть объявлен с модификатором open, чтобы его можно было переопределить в подклассе.

Пример:

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

class Derived : Base() {
    override fun greet() {
        super.greet()  // вызов метода базового класса
        println("Hello from Derived")
    }
}

fun main() {
    val obj = Derived()
    obj.greet()
}

В этом примере метод greet базового класса Base переопределяется в классе Derived, при этом вызывается оригинальная реализация через super.greet(), а затем добавляется дополнительное поведение.

Таким образом, чтобы изменить или дополнить поведение метода:

  • В базовом классе метод должен быть open.
  • В подклассе метод помечается override.
  • Можно вызвать оригинальный метод через super для дополнения, а не замены поведения.