Sobes.tech
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.