Junior — Middle
Môžeš uviesť a opísať konštruktory dostupné pre Zatvorenú Triedu?
sobes.tech AI
Odpoveď od AI
Sealed Class v Kotlinu je klasa koja ograničava nasleđivanje: sve podklase moraju biti deklarisane u istom fajlu.
Š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.