Junior — Middle
Kako implementirati nasledjivanje od klase koja je deklarisana kao sealed?
sobes.tech АИ
Одговор од АИ
U Kotlinu, klasa deklarisana kao sealed ograničava nasleđivanje samo unutar iste datoteke u kojoj je deklarisana. To znači da od sealed klase može nasleđivati samo u istoj datoteci gde je definisana.
Ako je klasa deklarisana kao sealed i nalazi se u drugoj datoteci, od nje ne može nasleđivati.
Dakle, da biste implementirali nasleđivanje od sealed klase, morate:
- Biti u istoj datoteci gde je deklarisana
sealedklasa. - Deklarisati podklase unutar te datoteke.
Primer:
sealed class Result
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
Ako je potrebna proširivost van datoteke, sealed nije pogodan, treba koristiti običnu otvorenu klasu ili interfejs.