Junior — Middle
Czy możliwe jest zadeklarowanie interfejsu jako sealed w języku programowania?
sobes.tech AI
Odpowiedź od AI
W języku Kotlin od wersji 1.5 pojawiła się możliwość deklarowania interfejsów jako sealed. Pozwala to ograniczyć zestaw klas, które mogą implementować ten interfejs, co jest przydatne dla kontroli i bezpieczeństwa typów.
Przykład:
sealed interface Expr
class Const(val number: Double) : Expr
class Sum(val e1: Expr, val e2: Expr) : Expr
W ten sposób sealed interface ogranicza hierarchię implementacji, podobnie jak sealed class. W Javie taka możliwość nie istnieje, ponieważ sealed jest stosowane tylko do klas i interfejsów od Java 15, ale z inną składnią i ograniczeniami.