Java中的标记接口

标记接口是没有声明任何方法的接口。

当父接口不包含任何方法时,将发生扩展接口的最常见用法。例如,java.awt.event包中的MouseListener接口扩展了java.util.EventListener,其定义为-

示例

package java.util;
public interface EventListener{ }

其中没有方法的接口称为标记接口。标记接口有两个基本设计目的。

  • 创建一个公共父对象  -与EventListener接口一样,该接口通过Java API中的许多其他接口进行了扩展,您可以使用标记接口在一组接口之间创建一个公共父对象。例如,当接口扩展EventListener时,JVM知道该特定接口将在事件委托场景中使用。

  • 将数据类型添加到类中  -这种情况是术语“标签”的来源。实现标记接口的类不需要定义任何方法(因为该接口没有任何方法),但是该类通过多态性成为接口类型。