Sobes.tech
Junior — Middle

Vysvetlite, čo sú uzavreté triedy v Kotlin a ako sa používajú

sobes.tech AI

Odpoveď od AI

V Kotlinu neexistuje špecifický pojem "zatvorené triedy" (closed classes) ako samostatný typ, ale existuje podobná koncepcia — sealed triedy (pečatené triedy).

Sealed trieda obmedzuje hierarchiu dedičnosti: všetky podtriedy takejto triedy musia byť deklarované v tom istom súbore. To umožňuje kompilátoru poznať všetky možné podtriedy a ich používať, napríklad v výrazoch when bez potreby písať vetvu else.

Použitie sealed tried je vhodné na modelovanie obmedzeného súboru možností, napríklad stavov alebo udalostí.

Príklad:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Dáta: ${result.data}")
        is Result.Error -> println("Chyba: ${result.error.message}")
    }
}

Ak "zatvorené triedy" znamenajú triedy s modifikátorom private alebo internal, potom sú to triedy s obmedzeným rozsahom viditeľnosti: private — viditeľné iba v rámci súboru, internal — v rámci modulu.