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:
- 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 azopenkulcsszóval kell megjelölni. - 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. - 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 pedigoverride-ként kell megjelölni. super: Asuperkulcsszót arra használják, hogy hozzáférjenek a bázisosztály tagjaihoz a gyermekosztályból.- 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
}