확장 인터페이스의 가장 일반적인 사용은 상위 인터페이스에 메서드가 포함되어 있지 않을 때 발생합니다. 예를 들어, java.awt.event 패키지의 MouseListener 인터페이스는 -
로 정의된 java.util.EventListener를 확장했습니다.예시
package java.util; public interface EventListener {}
메소드가 없는 인터페이스를 태깅 인터페이스라고 합니다. 인터페이스에 태그를 지정하는 두 가지 기본 설계 목적이 있습니다.
공통 부모 생성
Java API에서 수십 개의 다른 인터페이스로 확장된 EventListener 인터페이스와 마찬가지로 태그 지정 인터페이스를 사용하여 인터페이스 그룹 간에 공통 부모를 만들 수 있습니다. 예를 들어, 인터페이스가 EventListener를 확장할 때 JVM은 이 특정 인터페이스가 이벤트 위임 시나리오에서 사용될 것임을 알고 있습니다.
클래스에 데이터 유형 추가
이 상황에서 태깅이라는 용어가 유래되었습니다. 태깅 인터페이스를 구현한 클래스는 메소드를 정의할 필요가 없지만(인터페이스가 없기 때문에) 클래스는 다형성을 통해 인터페이스 유형이 됩니다.