Java接口支持多继承,一个接口可extends多个父接口,子接口继承所有抽象、默认和静态方法;类可通过implements多个接口实现行为上的多继承,避免菱形问题。

Java 中接口本身不叫“实现多继承”,而是支持多继承——这是接口独有的能力,和类的单继承完全不同。
接口可以多继承:一个接口能同时继承多个父接口
用 extends 关键字,后面跟多个接口名,用逗号分隔。子接口会继承所有父接口中的全部抽象方法(以及默认方法、静态方法)。
- 例如:
interface C extends A, B,那么 C 就拥有了 A 和 B 中定义的所有方法声明 - 实现类只要实现 C,就必须提供 A、B、C 三者中所有未被默认方法覆盖的抽象方法的具体实现
- 这种继承是纯契约式的,不涉及状态或具体实现,所以不会出现菱形问题
类通过 implements 多个接口,获得“行为上的多继承”效果
一个类可以 implements 多个接口,从而具备多种独立的行为能力,比如既能飞又能游还能叫。
- 语法格式:
class X extends Y implements A, B, C(先extends,再implements) - 接口之间若存在同名默认方法(Java 8+),编译器会报错,要求该类必须重写这个方法,并可选择调用任一接口的实现,如
A.super.method() - 这本质上是把多个行为契约组合到一个类型上,实现了功能的横向复用
接口多继承 + 类多实现 = 灵活的能力组装体系
实际开发中常这样分层设计:
立即学习“Java免费学习笔记(深入)”;
- 基础接口定义通用能力(如
Drawable、Serializable) - 复合接口继承多个基础接口(如
InteractiveDrawable extends Drawable, Clickable) - 具体类实现复合接口,或按需组合多个基础接口
- 这样既保持了类型清晰,又避免了类层次膨胀
不复杂但容易忽略


















