Junior — Middle
Mit értünk korlátozott örökléssel rendelkező osztály alatt, és hogyan használják Kotlinben?
sobes.tech MI
Válasz az MI-től
Kotlinban egy korlátozott örökléssel rendelkező osztály olyan osztály, amelyet nem lehet tetszőlegesen örökölni, csak meghatározott osztályok vagy modulok által. Ehhez a sealed (lezárt) kulcsszót használják.
A lezárt osztályok lehetővé teszik az öröklési hierarchia korlátozását: minden alosztálynak ugyanabban a fájlban kell lennie, mint a lezárt osztálynak. Ez hasznos például állapotok vagy eredmények kezelésénél, amikor korlátozott lehetőségek halmazát akarjuk megvalósítani.
Példa egy lezárt osztály használatára:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Adatok: ${result.data}")
is Result.Error -> println("Hiba: ${result.error.message}")
Result.Loading -> println("Betöltés...")
}
}
Így a lezárt osztály korlátozza az öröklődést, és lehetővé teszi a fordítónak, hogy ellenőrizze a when kifejezések teljességét.