Sobes.tech
Junior — Middle

Lehetséges-e egy sealed osztály objektumának inicializálása Kotlinban?

sobes.tech MI

Válasz az MI-től

Kotlinben a sealed osztály egy olyan osztály, amelynek korlátozott számú leszármazottja van, és ugyanabban a fájlban van definiálva. A sealed osztály általában absztrakt, és nem példányosítható közvetlenül.

Csak azok a leszármazott osztályok példányosíthatók, amelyek konkrétan megvalósítják a sealed osztályt. Például:

sealed class Result {
    data class Success(val data: String) : Result()
    object Failure : Result()
}

val result1: Result = Result.Success("OK")
val result2: Result = Result.Failure

Így nem lehet közvetlenül példányosítani a sealed osztály objektumát, de a leszármazott osztályok objektumait igen.