Hogyan történik az öröklődés a Kotlin nyelvben?
sobes.tech MI
Válasz az MI-től
A Kotlinban az öröklődés az open és override kulcsszavakon alapul. Az osztályok és metódusok alapértelmezés szerint final-ek, vagyis nem öröklődnek vagy írhatók felül. Az öröklődés engedélyezéséhez az osztályt vagy metódust az open módosítóval kell ellátni.
Az öröklő osztály létrehozásához a szülő osztály neve után kettőspont : kerül, majd a szülő osztály neve és konstruktorai.
open class Base(val name: String) {
open fun greet() {
println("Helló, $name")
}
}
A szülő osztály metódusának felülírásához az override módosítót használjuk.
class Derived(name: String) : Base(name) {
override fun greet() {
println("Üdvözlet, $name")
}
}
Ha a szülő osztálynak paraméteres konstruktora van, akkor az öröklő osztálynak azt a super kulcsszóval kell meghívnia.
A Kotlin támogatja az interfészek több öröklését, de nem osztályokat. Egy osztály csak egy másik osztálytól örökölhet.
Az osztály tagjait protected, internal vagy private módon is megjelölheti, korlátozva azok láthatóságát az öröklődő osztályok vagy a modulon belül.
Az absztrakt osztályokat az abstract kulcsszóval deklaráljuk. Tartalmazhatnak absztrakt (megvalósítás nélküli) és normál metódusokat is. Az absztrakt metódusoknak nincs szükségük az open-ra, mivel azok felülírásra kerülnek. Az absztrakt osztályokat nem lehet közvetlenül példányosítani.
abstract class Shape {
abstract fun draw()
open fun printInfo() {
println("Ez egy alakzat.")
}
}
Így a Kotlinban az öröklődés egyértelműen az open és override módosítók segítségével van kontrollálva, ami javítja az olvashatóságot és megakadályozza a nem kívánt öröklődést.