Junior — Middle
Kas sa saad loetleda ja kirjeldada suletud klassi jaoks saadaval olevaid konstruktorid?
sobes.tech AI
Vastus AI-lt
Kotlinis Sealed Class ir klase, kas ierobežo mantošanu: visas apakšklases ir jādeklarē tajā pašā failā.
Par sealed klases konstruktoriem:
- Paša sealed klase var būt ar konstruktoru, kā parasta klase.
- Sealed klases apakš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 mantojošo konstruktoru, kas nosaka konkrētas variācijas.