Java接口用interface定义,包含默认public abstract方法和public static final常量;支持default、static(Java 8+)及private(Java 9+)方法;不可实例化,支持多实现与多继承;强调行为契约,区别于抽象类的类型共性。

Java 中接口使用 interface 关键字定义,它声明一组抽象方法(默认 public abstract)和常量(默认 public static final),不包含具体实现。
基本语法结构
接口定义以 interface 开头,后跟接口名,大括号内写成员:
- 所有方法默认是 public abstract,可省略修饰符
- 所有字段默认是 public static final,必须初始化
- 从 Java 8 起,可定义 default 方法(有方法体)和 static 方法
- 从 Java 9 起,支持 private 方法(用于 default/static 方法内部复用)
一个标准接口示例
interface Drawable {
int MAX_SIZE = 100; // 自动是 public static final
void draw(); // 自动是 public abstract
boolean isValid();
default void resize(int newSize) {
if (newSize <= MAX_SIZE) {
System.out.println("Resized to: " + newSize);
}
}
static void info() {
System.out.println("This is a drawable interface");
}
}
注意事项
- 接口不能被实例化,只能被类 implements 或其他接口 extends
- 一个类可实现多个接口,用逗号分隔:
class Circle implements Drawable, Serializable - 接口之间支持多继承:
interface A extends B, C - 如果实现类没重写所有抽象方法,该类必须声明为 abstract
与抽象类的区别要点
- 接口强调“能做什么”(行为契约),抽象类强调“是什么”(类型共性)
- 接口字段只能是常量;抽象类可含普通变量、构造器、静态代码块等
- 接口方法默认无状态;抽象类方法可操作实例状态
- 设计上优先使用接口,利于解耦和测试


















