Junior — Middle
Възможно ли е да се обяви интерфейс като sealed в език за програмиране?
sobes.tech AI
Отговор от AI
В езика Kotlin, от версия 1.5 нататък, е възможно да се обявяват интерфейси като sealed. Това позволява да се ограничи наборът от класове, които могат да реализират този интерфейс, което е полезно за контрол и безопасност на типовете.
Пример:
sealed interface Expr
class Const(val number: Double) : Expr
class Sum(val e1: Expr, val e2: Expr) : Expr
По този начин, sealed interface ограничава йерархията на реализации, подобно на sealed class. В Java тази възможност не съществува, тъй като sealed се прилага само към класове и интерфейси от Java 15 нататък, но с различен синтаксис и ограничения.