Sobes.tech
Junior — Middle

Como implementar a herança de uma classe declarada como sealed?

sobes.tech IA

Resposta da IA

No Kotlin, uma classe declarada como sealed limita a herança apenas dentro do mesmo ficheiro onde é declarada. Isto significa que só é possível herdar de uma classe sealed no mesmo ficheiro onde ela está definida.

Se uma classe estiver declarada como sealed e estiver em outro ficheiro, não é possível herdar dela.

Assim, para implementar herança de uma classe sealed, deve-se:

  • Estar no mesmo ficheiro onde a classe sealed é declarada.
  • Declarar as subclasses dentro desse ficheiro.

Exemplo:

sealed class Result

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

Se for necessária extensibilidade fora do ficheiro, a classe sealed não é adequada, devendo usar uma classe aberta normal ou uma interface.