Sobes.tech
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.