Sobes.tech
Junior — Middle

Kaip įgyvendinti paveldėjimą iš sealed klasės?

sobes.tech AI

Atsakymas iš AI

Kotlin'e, sealed deklaruota klasė riboja paveldėjimą tik toje pačioje faile, kurioje ji deklaruota. Tai reiškia, kad iš sealed klasės galima paveldėti tik tame pačiame faile, kur ji apibrėžta.

Jei klasė yra deklaruota kaip sealed ir yra kitame faile, iš jos paveldėti negalima.

Taigi, norint įgyvendinti paveldėjimą iš sealed klasės, reikia:

  • būti tame pačiame faile, kur yra deklaruota sealed klasė,
  • ir deklaruoti pogrupius šiame faile.

Pavyzdys:

sealed class Result

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

Jei reikalinga išplėtimo galimybė už failo ribų, sealed netinka, reikia naudoti įprastą atvirą klasę arba sąsają.