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() {
        super.greet()  // извикване на метода на базовия клас
        println("Здравей от Derived")
    }
}

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

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

За да промените или добавите поведение към метод:

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