Junior — Middle
Ką reiškia klasė su ribotu paveldėjimu ir kaip ji naudojama Kotlin?
sobes.tech AI
Atsakymas iš AI
Kotlin'e klasė su ribotu paveldėjimu yra klasė, kurios negalima paveldėti atsitiktinai, tik tam tikrų klasių ar tam tikruose moduliuose. Tam naudojama raktinė žodis sealed (uždaryta klasė).
Uždarytos klasės leidžia apriboti paveldėjimo hierarchiją: visi pogrupiai turi būti deklaruoti toje pačioje failo, kaip ir pati uždaryta klasė. Tai naudinga įgyvendinant ribotą variantų rinkinį, pavyzdžiui, dirbant su būsenomis ar rezultatais.
Pavyzdys, kaip naudoti uždarytą klasę:
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("Duomenys: ${result.data}")
is Result.Error -> println("Klaida: ${result.error.message}")
Result.Loading -> println("Kraunasi...")
}
}
Tokiu būdu, uždaryta klasė riboja paveldėjimą ir leidžia kompiliatoriui patikrinti when išraiškų pilnumą.