Sobes.tech
Junior — Middle

Ի՞նչ է ենթադրվում սահմանափակ ժառանգության դասը և ինչպես է այն օգտագործվում Kotlin-ում։

sobes.tech AI

Պատասխան AI-ից

Kotlin- ում սահմանափակ ժառանգության դասը այն դասն է, որը հնարավոր չէ պատահական ժառանգել, միայն որոշակի դասերից կամ որոշ մոդուլներից։ Դրա համար օգտագործվում է sealed (մխիթարած դաս) բանալի բառը:

Մխիթարած դասերը թույլ են տալիս սահմանափակել ժառանգության հիերարխիան՝ բոլոր ենթակլասները պետք է հայտարարվեն նույն ֆայլում, ինչ մխիթարած դասը։ Սա օգտակար է սահմանափակ տարբերակների հավաքածուի իրականացման համար, օրինակ՝ վիճակների կամ արդյունքների հետ աշխատելիս։

Օրինակ՝ մխիթարած դասի օգտագործումը՝

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("Տվյալներ: ${result.data}")
        is Result.Error -> println("Սխալ: ${result.error.message}")
        Result.Loading -> println("Բեռնվում...")
    }
}

Այսպիսով, մխիթարած դասը սահմանափակում է ժառանգությունը և թույլ է տալիս կոմպիլյատորին ստուգել when արտահայտությունների ամբողջականությունը։