Java接口支持多继承,使用extends关键字继承多个接口;若父接口存在同签名default方法冲突,子接口必须显式覆盖;类只能单继承但可多实现,接口则可多继承。

Java 不支持类的多继承,但接口可以多继承——一个接口可以同时继承多个父接口。
接口多继承的基本语法
使用 extends 关键字,后接多个接口名,用逗号分隔:
interface SubInterface extends InterfaceA, InterfaceB, InterfaceC { ... }注意:只能用 extends,不能用 implements;接口继承的是契约(方法声明),不涉及实现或状态。
多继承中的方法冲突处理
如果多个父接口中定义了同名同签名的抽象方法(如都声明了 void doWork()),子接口无需特殊处理,它自然继承该方法一次。
立即学习“Java免费学习笔记(深入)”;
但如果出现默认方法(default)冲突(即多个父接口提供了同签名的 default 方法),编译器会报错,此时子接口必须显式覆盖该方法并提供自己的实现:
- 要么重写为抽象方法(不带方法体)
- 要么提供新的 default 实现
- 不能直接继承任一父接口的 default 版本
与类实现接口的区别
类只能 单继承(extends 一个类),但可 多实现(implements 多个接口);而接口本身可以 多继承(extends 多个接口)。
例如:
class MyClass extends ParentClass implements InterA, InterB, InterC { ... }
interface InterC extends InterA, InterB { ... }
实际使用建议
- 多继承接口适合构建正交能力组合,比如 Runnable + Serializable + AutoCloseable
- 避免让多个父接口定义语义重复的 default 方法,减少冲突风险
- 若需复用逻辑,优先考虑组合 default 方法调用,而非强行多继承


















