Sobes.tech
Junior

Porozprávajte mi o dedičstve v Kotlin.

sobes.tech AI

Odpoveď od AI

Dedičstvo v Kotlin je mechanizmus, ktorý umožňuje vytváranie nových tried na základe existujúcich. Nová trieda (potomok alebo odvodená) dedí vlastnosti (premenné) a metódy (funkcie) rodičovskej (základnej) triedy. To podporuje opakované použitie kódu a vytváranie hierarchií tried.

Kľúčové vlastnosti:

  1. Predvolene nie je otvorená: V Kotlinu sú triedy a metódy predvolene final, čo znamená, že ich nemožno dediť alebo prepísať. Na povolenie dedičnosti ich treba explicitne označiť kľúčovým slovom open.
  2. Konstruktory: Potomková trieda musí volať konštruktor jednej z bazových tried (ak ich je viac, v prípade rozhraní). Volanie sa vykonáva pri deklarácii potomkovej triedy pomocou (...).
  3. Prepísanie metód a vlastností: Na prepísanie metódy alebo vlastnosti bazovej triedy v potomkovej triede ich treba označiť open v bazovej triede a override v potomkovej.
  4. super: Kľúčové slovo super sa používa na prístup k členom bazovej triedy z potomkovej.
  5. Jednoduché dedičstvo implementácie: Kotlin podporuje jednoduché dedičstvo implementácie (z jednej triedy), ale podporuje aj viacnásobné dedičstvo rozhraní.

Príklad bazovej triedy:

// Bazová trieda
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name vydáva zvuk")
    }
}

Príklad potomkovej triedy:

// Potomková trieda
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name šteka")
    }
}

Použitie:

// Použitie objektov
fun main() {
    val animal = Animal("Všeobecné zviera")
    animal.makeSound() // Výstup: Všeobecné zviera vydáva zvuk

    val dog = Dog("Bobby")
    dog.makeSound() // Výstup: Bobby šteka
}