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.