Java中用implements关键字让类实现接口,必须重写所有抽象方法且访问修饰符为public;一个类可实现多个接口,支持单继承多实现,接口间可用extends多继承,体现多态性并用于解耦和测试。

Java 中用 implements 关键字让类实现接口,表示该类承诺提供接口中所有抽象方法的具体实现。
接口定义与 implements 基本写法
接口用 interface 声明,只包含常量和抽象方法(默认 public abstract)。类通过 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"); }
}
必须实现所有抽象方法
一旦类声明 implements 某个接口,就必须重写该接口中每个抽象方法,否则编译报错。方法签名(名称、参数列表、返回类型)必须完全匹配,访问修饰符需为 public(不能更严格)。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 若未实现,编译器提示:“The type X must implement the inherited abstract method Y”
- 默认方法(default)和静态方法(static)无需重写,可直接继承或调用
- 接口中 default 方法可被子类覆盖,但不是强制要求
与 extends 的区别和组合使用
implements 用于实现接口,extends 用于继承父类。Java 不支持多继承类,但允许单继承 + 多实现。extends 必须写在 implements 前面。
例如:
class Sparrow extends Bird implements Flyable, Singable {// 继承 Bird 类,同时实现两个接口
}
- 一个类最多只能有一个父类(用 extends),但可实现任意数量接口
- 接口之间可用 extends 实现多继承(如 interface A extends B, C)
- 类实现接口后,可向上转型为该接口类型,体现多态性:Flyable f = new Duck();
实际开发中的常见用法
接口常用于定义行为契约,解耦调用方与具体实现。比如 DAO 层定义 Repository 接口,不同数据库实现各自类。
- 把通用能力抽象成接口(如 Comparable、Runnable),便于复用和扩展
- 测试时可用模拟实现类替代真实依赖,提升可测性
- Lambda 表达式可简化函数式接口(只有一个抽象方法的接口)的实现
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










