Sobes.tech
Junior — Middle

Čo sa rozumie pod triedou s obmedzeným dedičstvom a ako sa používa v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu je trieda s obmedzeným dedičstvom trieda, trieda, ktorú nie je možné dedične ľubovoľne, ale iba od určitých tried alebo v určitých moduloch. Na to sa používa kľúčové slovo sealed (zapečatená trieda).

Zapečatené triedy umožňujú obmedziť hierarchiu dedičstva: všetky podtriedy musia byť deklarované v tom istom súbore ako samotná zapečatená trieda. To je užitočné na implementáciu obmedzeného súboru možností, napríklad pri práci so stavmi alebo výsledkami.

Príklad použitia zapečatenej triedy:

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("Dáta: ${result.data}")
        is Result.Error -> println("Chyba: ${result.error.message}")
        Result.Loading -> println("Načítava sa...")
    }
}

Týmto spôsobom zapečatená trieda obmedzuje dedičstvo a umožňuje kompilátoru kontrolovať úplnosť výrazov when.