一个类可实现多个接口以扩展功能,如Drone实现Flyable和Camera接口,需重写所有抽象方法;若存在同名default方法,则必须显式覆盖解决冲突,从而实现灵活解耦的设计。
在Java中,一个类可以实现多个接口,这是Java支持多重行为继承的关键机制。由于Java不允许多重继承(即一个类不能继承多个类),但允许实现多个接口,因此接口多实现成为扩展类功能的重要方式。
接口多实现指的是一个类使用 implements 关键字同时实现两个或更多接口。每个接口定义了一组抽象方法,实现类必须提供这些方法的具体实现。
例如,一个“无人机”类可能既要具备“飞行设备”的能力,也要具备“摄像头设备”的功能,这时就可以让它实现多个相关接口。
语法格式如下:
public class ClassName implements Interface1, Interface2, Interface3 { // 实现所有接口中的抽象方法 }实现时需注意:
示例代码:
interface Flyable { void fly(); } interface Camera { void takePhoto(); } public class Drone implements Flyable, Camera { public void fly() { System.out.println("Drone is flying."); } public void takePhoto() { System.out.println("Taking photo
from drone.");
}
public static void main(String[] args) {
Drone d = new Drone();
d.fly();
d.takePhoto();
}
}
从Java 8开始,接口可以包含 default 方法(带有实现的方法)。当一个类实现多个包含同名 default 方法的接口时,必须显式覆盖该方法以解决冲突。
例如:
interface A { default void greet() { System.out.println("Hello from A"); } } interface B { default void greet() { System.out.println("Hello from B"); } } public class MyClass implements A, B { @Override public void greet() { // 必须重写,否则编译错误 System.out.println("Hello from MyClass"); // 或选择调用其中一个:A.super.greet(); } }接口多实现常用于以下场景:
基本上就这些。掌握接口多实现,能让你的面向对象设计更灵活、解耦更强。只要注意方法冲突和默认方法的处理,使用起来并不复杂但非常实用。