java中类用implements实现接口,核心是声明承诺并全部兑现:必须用public方法实现接口所有抽象方法;可实现多个接口,同名方法只需实现一次;default方法冲突需显式重写;接口间用extends继承,类只能用implements实现接口。

Java 中用 implements 让普通类实现接口,核心是“声明承诺 + 全部兑现”:类明确表示支持某组行为契约,并把每个抽象方法都用 public 方法写出来。
单个接口实现:基础写法与强制要求
普通类实现一个接口时,语法简洁但约束严格:
- 在
class声明后紧跟implements 接口名,例如:class Dog implements Animal - 接口中所有
public abstract方法(即使没写public和abstract,也默认是)必须在类中提供 public 修饰的具体实现 - 方法签名(名称、参数类型与顺序、返回类型)必须完全一致,否则编译报错,如
java: class Dog must either be declared abstract or implement abstract method move() in Animal - 不加
@Override不影响编译,但强烈建议加上,便于 IDE 校验和代码可读
多个接口实现:逗号分隔与方法复用
一个类可以同时实现多个接口,这是 Java 突破单继承限制的关键方式:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 接口名之间用英文逗号分隔,无空格或分号:
class Duck implements Flyable, Swimmable, Runnable - 若多个接口定义了同名同参的方法(如都含
void start()),类中只需实现一次,该实现同时满足所有接口 - 但语义需自洽——比如
Resetable.reset()要清空状态,而另一个接口的reset()要抛异常,这种逻辑冲突不会被编译器捕获,需人工判断 - 所有接口的抽象方法仍须全部覆盖;漏掉任意一个,编译失败
处理 default 方法:冲突必须显式解决
Java 8+ 接口中可含 default 方法,它们有实现体,但多接口同名时会引发编译错误:
- 若仅一个接口提供
default void show(),类可直接使用,无需重写 - 若
InterfaceA和InterfaceB都有同签名default show(),类必须自己写一个show()方法,且必须加@Override - 可在新实现中调用某一方默认逻辑,例如:
InterfaceA.super.show(); - 接口中的
static方法不能被实现或重写,只能通过接口名调用,如Flyable.log();
注意边界:接口不是类,extends 和 implements 不能混用
几个容易出错的硬性规则:
- 接口之间用
extends继承(可多继承),类实现接口只能用implements,不能写成class A extends B implements C中的extends C - 类若同时继承父类并实现接口,
extends必须写在implements前面:class Child extends Parent implements A, B - 父类已实现某个接口的部分方法,子类仍需写
implements X才能被当作X类型使用;光靠父类实现不等于子类自动具备该接口类型 - 接口里不能写构造器、普通字段、非
public方法或普通方法体,否则编译直接失败
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










