Sobes.tech
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 нататък, но с различен синтаксис и ограничения.