接口-java基础语法
runtao.zhong 于 2025-08-16 发布
Java 接口核心规则速查
1. 接口定义语法
// 用 interface 关键字声明,不是 class
public interface 接口名 {
// 全局常量:默认自带 public static final,必须声明时赋值
数据类型 常量名 = 值;
// 抽象方法:默认自带 public abstract,无方法体
返回值类型 方法名(参数列表);
// Java 8+ 新增:默认方法,带具体实现,用 default 修饰
default 返回值类型 方法名(参数列表) {
// 方法体
}
// Java 8+ 新增:静态方法,带具体实现,用 static 修饰
static 返回值类型 静态方法名(参数列表) {
// 方法体
}
}
2. 类实现接口规则
// 用 implements 关键字,而非 extends 继承,支持多实现
public class 类名 implements 接口1, 接口2 {
// 必须重写接口所有抽象方法,强制使用 public 权限
@Override
public 返回值类型 方法名(参数列表) {
// 完整业务实现
}
}
3. 核心特性
- 接口不能直接实例化对象
- 一个类可以同时实现多个接口,突破单继承限制
- 接口之间支持多继承:public interface 子接口 extends 父接口1, 父接口2 {} 仅定义能力契约,不包含子类通用复用的成员变量和普通实例方法
接口中三类特殊方法调用规则(JDK8+ 全特性,JDK21 完全兼容)
1. 接口静态方法
- 作用:给接口升级提供全局通用工具逻辑
- 定义格式:
public static 返回值类型 方法名() { 方法体 }
- 核心规则:
- 只能 直接通过接口名调用,绝对不能用实现类对象、实现类名调用
public 修饰符可省略,static 关键字不能省略
// 只能直接用接口名调用,不能用实现类对象/类名调用
Inter.method();
// 错误写法:InterImpl.method()、new InterImpl().method() 全部编译报错
2. 接口默认方法
- 调用优先级:执行方法时 优先走类的继承链,完全不会看接口
- 如果实现类的父类里有同名普通方法,会直接覆盖接口的默认方法,不会触发接口逻辑
- 核心规则:
- 实现类不强制重写,重写时必须去掉
default关键字
- 多接口同名默认方法冲突时,子类必须手动重写解决冲突
// 先new实现类对象,直接用对象调用
InterImpl ii = new InterImpl();
ii.aaa();
// 如果实现类重写了默认方法,调用的是重写后的逻辑;没重写就走接口默认实现
3. 接口私有方法(JDK9+ 新增)
- 作用:给接口内部多个默认方法/静态方法抽取公共重复逻辑,不对外暴露
- 核心规则:
- 只能在当前接口内部被其他方法调用,实现类完全访问不到
- 分为普通私有方法(给默认方法复用)、静态私有方法(给静态方法复用)两种