Sobes.tech
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 sealed klasa.
  • 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.