Java中implements用于类实现接口,extends用于类继承类或接口继承接口;抽象类可implements接口或extends类,接口只能extends其他接口,不能implements。

Java 中接口(interface)不能用 implements 实现,只有类(class)或枚举(enum)才能用 implements 实现接口;抽象类(abstract class)本身是类,可以 implements 接口,也可以 extends 另一个类(包括抽象类)。
类实现接口:用 implements
普通类或抽象类要使用接口定义的行为契约,必须通过 implements 关键字显式声明:
- 非抽象类实现接口时,必须提供接口中所有抽象方法的具体实现;
- 抽象类实现接口时,可以不实现其中的方法,留给子类完成;
- 一个类可
implements多个接口,用英文逗号分隔。
示例:
public abstract class Animal implements Runnable, Swimmable { ... }public class Dog extends Animal implements Barkable { ... }
抽象类继承抽象类:用 extends
抽象类之间是继承关系,使用 extends,不是 implements:
立即学习“Java免费学习笔记(深入)”;
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 子抽象类可选择重写父抽象类的抽象方法,也可新增抽象方法;
- 不能同时
extends多个类(Java 不支持多继承); - 但可以在
extends一个类的同时,implements多个接口。
示例:
public abstract class Mammal extends Animal { ... }public class Cat extends Mammal implements Climbable, Purrable { ... }
接口之间是继承关系:用 extends
接口不能被“实现”,但可以被其他接口继承,使用 extends:
- 一个接口可
extends多个接口; - 继承后,子接口会包含父接口的所有抽象方法;
- 实现该子接口的类,需一并实现所有继承来的方法。
示例:
public interface Flyable extends Movable, Drawable { ... }常见误区提醒
以下写法是错误的:
-
interface A implements B→ 接口不能 implements,只能 extends; -
abstract class A implements B extends C→extends和implements顺序错误,且语法不合法;正确写法是class A extends C implements B; - 非抽象类未实现全部接口方法 → 编译报错。
核心记住:implements 是类对接口的“实现”,extends 是类对类、接口对接口的“继承”。

















