클래스와 마찬가지로 인터페이스에서도 Java 15
에서 추가된 sealed
키워드를 통해 봉인된 인터페이스
문법을 사용할 수 있습니다.
봉인된 인터페이스
역시 무분별한 자식 인터페이스의 생성을 방지하고자 도입된 문법입니다.
sealed interface 인터페이스명 permits 자식으로_둘_인터페이스, ... {}
public sealed interface A permits B {}
위와 같이 선언하면 A 인터페이스는 오직 B 인터페이스만이 상속받을 수 있고 그 외의 인터페이스에서는 오류가 발생합니다.
permits를 통해 허가받고 상속받은 인터페이스는 sealed
와 non-sealed
둘 중 하나를 선택해서 봉인을 계속 하거나 봉인을 해제해야합니다. 클래스와 달리 인터페이스에선 final
은 사용할 수 없습니다.
public non-sealed interface B extends A {}