Sobes.tech
Junior — Middle

Wat wordt bedoeld met een klasse met beperkte overerving en hoe wordt deze gebruikt in Kotlin?

sobes.tech AI

Antwoord van AI

In Kotlin, een klasse met beperkte overerving is een klasse die niet willekeurig kan worden overgeërfd, maar alleen door bepaalde klassen of in bepaalde modules. Hiervoor wordt het sleutelwoord sealed (geheime klasse) gebruikt.

Geheime klassen maken het mogelijk om de overervingshiërarchie te beperken: alle subklassen moeten in hetzelfde bestand worden gedeclareerd als de geheime klasse. Dit is handig voor het implementeren van een beperkte set opties, bijvoorbeeld bij het werken met staten of resultaten.

Voorbeeld van het gebruik van een geheime klasse:

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("Gegevens: ${result.data}")
        is Result.Error -> println("Fout: ${result.error.message}")
        Result.Loading -> println("Laden...")
    }
}

Op deze manier beperkt de geheime klasse de overerving en stelt de compiler in staat om de volledigheid van when-uitdrukkingen te controleren.