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