Sobes.tech
Junior — Middle

Ako implementovať dedičstvo od triedy deklarovanej ako sealed?

sobes.tech AI

Odpoveď od AI

V Kotlinu obmedzuje sealed trieda dedičstvo iba v rámci toho istého súboru, v ktorom je deklarovaná. To znamená, že od sealed triedy je možné dediť iba v tom istom súbore, kde je definovaná.

Ak je trieda deklarovaná ako sealed a nachádza sa v inom súbore, od nej dediť nemožno.

Pre implementáciu dedičstva od sealed triedy je potrebné:

  • Nachádzať sa v tom istom súbore, kde je deklarovaná sealed trieda.
  • Deklarovať podtriedy v tomto súbore.

Príklad:

sealed class Result

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

Ak je potrebná rozšíriteľnosť mimo súbor, sealed nie je vhodný, je potrebné použiť bežnú otvorenú triedu alebo rozhranie.