Junior — Middle
Можеш ли да набројиш и опишеш конструкторе доступне за затворену класу?
sobes.tech АИ
Одговор од АИ
Sealed Class u Kotlinu je klasa koja ograničava nasleđivanje: sve podklase moraju biti deklarisane u istoj datoteci.
Što se tiče konstruktora za sealed klase:
- Sama sealed klasa može imati konstruktore, kao obična klasa.
- Podklase sealed klase mogu imati svoje sopstvene konstruktore.
- Obično se sealed klasa deklarise kao apstraktna, a njen konstruktor može biti zaštićen ili javni.
Primer:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
Ovde, sealed klasa Result nema eksplicitni konstruktor, ali podklase Success i Error imaju svoje konstruktore sa parametrima.
Dakle, sealed klasa sama po sebi može imati konstruktore, ali su često važniji konstruktori njenih naslednika, koji definišu konkretne varijante.