Sobes.tech
Junior — Middle

Jak implementovat dědičnost od třídy deklarované jako sealed?

sobes.tech AI

Odpověď od AI

V Kotlinu omezená třída sealed omezuje dědičnost pouze uvnitř stejného souboru, ve kterém je deklarována. To znamená, že dědit od sealed třídy lze pouze ve stejném souboru, kde je definována.

Pokud je třída deklarována jako sealed a nachází se v jiném souboru, dědit od ní nelze.

Pro implementaci dědičnosti od sealed třídy je třeba:

  • Nacházet se ve stejném souboru, kde je sealed třída deklarována.
  • Deklarovat podtřídy uvnitř tohoto souboru.

Příklad:

sealed class Result

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

Pokud je potřeba rozšiřitelnost mimo soubor, sealed není vhodný, je třeba použít běžnou otevřenou třídu nebo rozhraní.