在 Java 中,标记接口(marker interface)是一种没有任何方法或字段的接口,主要用于在编译时或运行时标识某些特定的行为或特征。标记接口的主要目的是提供一种类型信息,以便对实现该接口的类进行特殊处理或管理。
标记接口的特点
-
没有方法:
- 标记接口本身不包含任何方法或字段。它的存在仅仅是为了标记某些类具有特定的特性或行为。
-
用于类型标记:
- 实现标记接口的类被视为具有某种特性或功能。通过检查类是否实现了标记接口,可以决定是否对其进行特殊处理。
-
设计目的:
- 标记接口主要用于提供元数据,帮助系统在运行时或编译时识别类的特性或行为。例如,它可以用来标识类的线程安全性、序列化能力、可克隆性等。
示例
以下是一些经典的标记接口示例:
-
Serializable
:Serializable
是一个标记接口,标识实现它的类可以被序列化。序列化允许将对象转换为字节流,以便保存到磁盘或通过网络传输。- 示例代码:
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
// 构造函数、getter 和 set