implements是Java中声明类实现接口的关键字,要求类必须提供接口中所有抽象方法的具体实现;一个类可实现多个接口,语法上需位于extends之后;default和static方法无需强制实现。

implements 是 Java 中用于声明一个类“实现”某个接口的关键字。它不是继承,而是承诺——类必须提供接口中所有抽象方法的具体实现,否则编译不通过。
接口与 implements 的基本用法
接口(interface)是一组抽象方法的集合(Java 8 后还可含 default 和 static 方法)。类通过 implements 显式表明它支持该接口定义的行为契约。
- 一个类可以 implements 多个接口,用逗号分隔,例如:class Dog implements Runnable, Comparable
- 接口名必须是已声明的、可访问的接口类型;不能是类、抽象类或未定义类型
- 如果接口中有 abstract 方法,实现类必须提供 public 修饰的、签名完全一致的具体方法(返回类型、方法名、参数列表、异常声明需兼容)
必须实现全部抽象方法
接口中的抽象方法默认是 public abstract,即使不写修饰符。实现类里的对应方法不能降低访问权限(比如不能用 private 或 protected),也不能抛出比接口方法声明更宽泛的检查型异常。
- 错误示例:void run() { ... } —— 缺少 public,编译失败
- 正确写法:public void run() { ... }
- 若接口方法声明 void action() throws IOException,实现类可不抛异常,或只抛 FileNotFoundException(IOException 子类),但不能抛 Exception
与 extends 共存时的位置规则
一个类最多只能有一个父类,但可实现多个接口。语法顺序固定:先 extends,后 implements。
立即学习“Java免费学习笔记(深入)”;
- 合法:class A extends B implements C, D
- 非法:class A implements C, D extends B(编译报错)
- 接口也可以 extends 其他接口(支持多继承),但那是接口之间的关系,和 implements 无关
default 和 static 方法不影响实现义务
Java 8 引入 default 方法(有方法体)和 static 接口方法,它们不要求实现类重写。实现类可直接调用,也可选择覆盖 default 方法。
- default 方法本质是“接口提供的默认行为”,不是强制契约
- static 方法属于接口本身,通过接口名调用(如 MyInterface.doStatic()),实现类不会继承它
- 只有 abstract 方法(包括隐式声明的)才触发 implements 的强制实现要求










