Java接口用interface定义,声明行为规范而不实现;含抽象方法(默认public abstract)、常量(public static final)、默认方法(default)、静态方法(static)及私有方法(JDK9+);支持多继承(extends),不可实例化。

Java 中用 interface 关键字定义接口,核心是声明行为规范,不写具体实现。
基本定义格式
最简形式如下:
- 使用
public interface 接口名开头(public可省略,但通常显式写出) - 接口体中只放方法签名或常量声明,不能有普通字段、构造器、静态代码块等
- 所有方法默认是
public abstract,可省略修饰符 - 所有变量默认是
public static final,必须初始化
例如:
public interface Drawable {String DEFAULT_COLOR = "black"; // 自动是 public static final
void draw(); // 自动是 public abstract
boolean isValid();
}
支持的成员类型(JDK 8+)
现代 Java 接口不再只是纯抽象,还能包含:
立即学习“Java免费学习笔记(深入)”;
-
默认方法:用
default修饰,提供可选实现,子类可重写 -
静态方法:用
static修饰,通过接口名直接调用,如Drawable.create() - 私有方法(JDK 9+):用于默认/静态方法间复用逻辑,不可被实现类访问
接口之间的继承
接口可以用 extends 继承一个或多个其他接口:
- 语法:
public interface SubInterface extends InterfaceA, InterfaceB - 子接口会继承父接口的所有抽象方法,也可添加新方法
- 不能用
implements继承接口——那是类做的事
常见注意事项
定义时容易忽略但关键的点:
- 接口不能被
new实例化,只能由类implements - 即使没写
public,接口中的方法和常量也自动具备该访问权限 - 接口名推荐用形容词或名词,如
Runnable、Comparable、Configurable - 避免在接口里定义大量默认方法——可能模糊“契约”本意


















