Java中一个类可同时实现多个接口,语法为class类名implements接口1,接口2,…,且必须实现所有接口的抽象方法;若多个接口有同名default方法,子类须显式重写。

Java 中一个类可以同时实现多个接口,只需在 implements 关键字后用英文逗号分隔各个接口名即可。
语法写法:用逗号分隔多个接口
一个类实现多个接口时,格式如下:
class 类名 implements 接口1, 接口2, 接口3 { ... }
注意:接口之间不能有继承关系冲突,且类必须实现所有接口中声明的抽象方法(除非该类是抽象类)。
立即学习“Java免费学习笔记(深入)”;
必须实现所有接口中的抽象方法
如果接口中有默认方法(default)或静态方法,无需重写;但所有 public abstract 方法都必须提供具体实现。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 若遗漏某个抽象方法,编译器会报错:“The type X must implement the inherited abstract method Y”
- 若方法签名重复(如两个接口有同名同参的抽象方法),只需实现一次即可
- 若两个接口有同名但参数不同的方法,需分别实现
接口间存在相同默认方法时需特别处理
当多个接口提供了同名、同签名的 default 方法,子类必须显式覆写该方法,否则编译失败。
例如:
interface A { default void show() { System.out.println("A"); } }
interface B { default void show() { System.out.println("B"); } }
class C implements A, B { public void show() { A.super.show(); } // 必须重写
实际例子:一个类实现 Runnable 和 Comparable
比如定义一个任务类,既要可运行,又要可排序:
class Task implements Runnable, Comparable<Task> {
private String name;
private int priority;
public Task(String name, int priority) {
this.name = name;
this.priority = priority;
}
public void run() {
System.out.println("Running: " + name);
}
public int compareTo(Task other) {
return Integer.compare(this.priority, other.priority);
}
}
这个类既可用于线程执行,也可放入集合中排序,体现了多接口协作的优势。

















