Back to questions
Junior — Middle
91
Является ли возможным объявить интерфейс как sealed в языке программирования?
Answer from AI
sobes.tech 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, но с другим синтаксисом и ограничениями.