Java 接口(Interface)
接口的本质: 接口是一种比抽象类更“纯粹”的抽象类型。它就像是一份 “通用契约” 或 “行为标准” ,只规定“能做什么”,而不关心“具体怎么做”。
接口的核心作用
接口的定义与成员规则
接口的实现(Implements)
接口与继承的关系
- 类与类:只能是单继承(extends)。
- 类与接口:可以多实现(implements)。
- 接口与接口:接口之间支持多继承(一个接口可以 extends 多个父接口)。
代码示例:多实现与不可实例化
接口就像一份“行为说明书”,类实现了接口就必须照着做。同时,接口本身是抽象的,无法直接创建对象。
// 定义两个接口:代表两种不同的能力
interface Flyable {
void fly();
}
interface Swimmable {
void swim();
}
// 一个类可以实现多个接口(多实现),同时具备飞行和游泳的能力
class Duck implements Flyable, Swimmable {
@Override
public void fly() {
System.out.println("鸭子在天上飞");
}
@Override
public void swim() {
System.out.println("鸭子在水里游");
}
}
public class Test {
public static void main(String[] args) {
// 接口不能被实例化!以下代码会报错:
// Flyable f = new Flyable(); 编译错误
// 正确的做法是:创建实现类的对象
Duck duck = new Duck();
duck.fly();
duck.swim();
}
}
生活案例:USB 接口
接口在现实生活中的完美体现就是电脑的 USB 接口。
电脑主板(系统)定义好了 USB 接口的规范(能传输数据、能供电),它不需要知道具体插上来的是什么设备。
- 鼠标实现了 USB 接口,插上就能控制光标。
- 键盘实现了 USB 接口,插上就能输入文字。
- U盘实现了 USB 接口,插上就能读写文件。
不管是鼠标、键盘还是U盘,只要它们符合 USB 接口的规范(实现了接口),电脑就能识别并使用它们。这就是接口“约束”与“多态”的完美体现,也极大地降低了设备与电脑之间的耦合度。





