java中一个类可通过implements关键字同时实现多个接口,用英文逗号分隔;必须实现所有抽象方法(除非是抽象类),相同签名方法只需实现一次,默认方法可继承或显式重写,且支持单继承+多实现。

Java 中一个类可以通过 implements 关键字同时实现多个接口,只需用英文逗号分隔接口名即可。
语法写法:用逗号分隔多个接口
一个类实现多个接口时,implements 后面直接列出所有接口,中间用英文逗号(,)隔开,不需要额外关键字或修饰符。
- 格式:class 类名 implements 接口1, 接口2, 接口3 { ... }
- 接口之间不能有继承关系冲突(比如两个接口定义了同名同参数但返回类型不同的默认方法,编译会报错)
- 类必须重写所有接口中声明的抽象方法(除非该类是抽象类)
必须实现所有抽象方法
只要类不是 abstract 的,就必须为每个接口里定义的抽象方法提供具体实现。如果多个接口中有相同签名的方法(方法名、参数列表一致),只需实现一次即可,该实现会同时满足所有接口的要求。
- 例如:接口 A 和 B 都有 void doWork(),类 C 实现 A 和 B,只需写一个 public void doWork() { ... }
- 若接口中存在默认方法(default),类可选择不重写,直接继承使用;如有冲突(如两个 default 方法签名相同但内容不同),必须在类中显式重写该方法
与继承结合:只能单继承,但可多实现
Java 不支持多继承(即一个类不能 extends 多个类),但允许一个类在继承一个父类的同时,实现多个接口。
- 格式:class 子类 extends 父类 implements 接口1, 接口2
- extends 必须写在 implements 前面
- 父类已实现的方法,不能覆盖接口的抽象方法要求——如果父类没实现某个接口方法,子类仍需补全
实际例子
假设有两个接口:
- interface Flyable { void fly(); }
- interface Swimmable { void swim(); }
一个类可以这样实现:
class Duck implements Flyable, Swimmable {
public void fly() { System.out.println("Duck is flying"); }
public void swim() { System.out.println("Duck is swimming"); }
}
创建对象后,既能调用 fly(),也能调用 swim()。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











