Sobes.tech
Junior — Middle

Vai jūs varat uzskaitīt un aprakstīt slēgtās klases pieejamos konstruktorus?

sobes.tech AI

Atbilde no AI

Kotlin valodā Sealed Class ir klase, kas ierobežo mantošanu: visas apaklasas jādeklarē tajā pašā failā.

Par sealed klases konstruktoriem:

  • Paša sealed klase var būt ar konstruktoru, kā parasta klase.
  • Apaklasas sealed klases var būt ar saviem konstruktoriem.
  • Parasti, sealed klase tiek deklarēta kā abstrakta, un tās konstruktors var būt aizsargāts vai publisks.

Piemērs:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

Šeit, sealed klase Result nav ar tiešu konstruktoru, bet Success un Error apakšklases ir ar saviem konstruktoriem ar parametriem.

Tādējādi, sealed klase pati var būt ar konstruktoru, bet biežāk svarīgi ir tās mantinieku konstruktoru, kas nosaka konkrētas variācijas.