Sobes.tech
Junior

Mesélj a öröklésről Kotlinben.

sobes.tech MI

Válasz az MI-től

A Kotlinban az öröklődés egy olyan mechanizmus, amely lehetővé teszi új osztályok létrehozását meglévő osztályok alapján. Az új osztály (gyermek vagy származtatott) örökli a szülő (alap vagy bázis) osztály tulajdonságait (változók) és metódusait (függvények). Ez elősegíti a kód újrahasznosítását és az osztályhierarchiák kialakítását.

Fő jellemzők:

  1. Alapértelmezés szerint nem nyitott: Kotlinban az osztályok és metódusok alapértelmezés szerint final-ek, azaz nem örökölhetők vagy írhatók felül. Az öröklés engedélyezéséhez ezeket kifejezetten az open kulcsszóval kell megjelölni.
  2. Konstruktorok: A gyermekosztálynak hívnia kell az egyik bázisosztály konstruktorát (ha több van, az interfészek esetében). A hívás a gyermekosztály deklarálásakor történik az (...) használatával.
  3. Metódusok és tulajdonságok felülírása: A bázisosztály metódusának vagy tulajdonságának felülírásához azokat a bázisosztályban open-ként, a gyermekosztályban pedig override-ként kell megjelölni.
  4. super: A super kulcsszót arra használják, hogy hozzáférjenek a bázisosztály tagjaihoz a gyermekosztályból.
  5. Egyszerű implementációs öröklés: Kotlin támogatja az egyszerű (egyetlen osztályból származó) öröklést, de több interfész öröklését is támogatja.

Példa bázisosztály:

// Bázisosztály
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name hangot ad ki")
    }
}

Példa gyermekosztály:

// Gyermekosztály
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name ugat")
    }
}

Használat:

// Objektumok használata
fun main() {
    val animal = Animal("Általános állat")
    animal.makeSound() // Kimenet: Általános állat hangot ad ki

    val dog = Dog("Bodri")
    dog.makeSound() // Kimenet: Bodri ugat
}