首先纠正关键字,Java 里面正确关键字是 implements,很多新手会写成 implement,这是编译报错高频错误,implements 作用是类去实现接口,也就是 class 类后面加上 implements,把接口里面定义的抽象方法全部重写实现,这是 Java 实现多态非常核心的语法。接口本身只定义方法规范,没有具体业务逻辑,类通过 implements 实现接口之后,就要遵守这套规范,把接口里面所有抽象方法写出具体代码。Java 类是单继承,一个类只能 extends 一个父类,但是使用 implements 可以同时实现多个接口,用逗号隔开,这就是弥补单继承局限的重要方式。JDK8 之后接口可以有 default 默认方法和 static 静态方法,实现类可以选择不重写默认方法,但是抽象方法仍然必须全部实现,这个是新版语法重点。学习 implements 的时候,要区分 extends 继承类和 implements 实现接口,二者概念不一样,extends 是继承已经写好的类,implements 是遵守接口契约,很多新手会把两个关键字混用,导致编译失败。
基础语法格式
class 类名 implements 接口名 {
// 重写接口全部抽象方法
}
如果实现多个接口
class 类名 implements 接口 A, 接口 B {
}
如果类同时继承父类并且实现接口,写法顺序是先 extends 再 implements
class 类名 extends 父类 implements 接口 A {
}
核心规则说明
第一 普通类使用 implements 实现接口,必须重写接口里面全部抽象方法,如果没有全部重写,这个类就必须声明成 abstract 抽象类,抽象类可以不用实现全部抽象方法,留给它的子类继续实现。
第二 接口里面抽象方法默认 public abstract,重写方法的时候访问权限不能比接口方法更低,一般都写成 public。
第三 一个类可以 implements 多个接口,多个接口如果出现同名默认方法,实现类必须手动重写这个冲突方法,解决方法冲突。
第四 接口里面常量默认 public static final,实现类可以直接调用这个常量。
implements 和 extends 对比表格
| 对比项 | implements | extends |
|---|---|---|
| 作用 | 实现接口规范 | 继承父类 |
| 数量 | 可以同时实现多个接口 | 只能单继承一个父类 |
| 方法 | 主要重写抽象方法 | 继承父类成员可以重写也可以直接使用 |
| 设计目的 | 实现多态 规范契约 | 代码复用 |
学习使用推进步骤
第一步 先定义 interface 接口,在接口里面声明抽象方法。第二步 创建普通类,类名后面写 implements 加上接口名称。第三步 在类内部重写接口所有抽象方法,加上 @Override 注解,这个注解可以校验重写是否正确。第四步 测试多态写法,接口类型变量指向实现类对象,也就是 接口名 对象 = new 实现类 ()。第五步 练习多接口实现,测试同名默认方法冲突场景,理解冲突必须手动重写。
综合来看,implements 是类实现接口的关键字,是 Java 多态核心语法,普通类实现接口必须重写全部抽象方法,支持多接口实现,同时继承父类的时候,extends 写在 implements 前面。写代码记得关键字拼写是 implements,不要少 s,并且重写方法推荐加上 @Override 注解,提前发现方法签名写错的问题。
【常见问题】
问题 1 java 中的 implement 怎么用 关键字是不是 implement
回答 1 java 中的 implement 怎么用,正确关键字是 implements,不是 implement,少写 s 会编译报错,用来让类实现接口。
问题 2 java 中的 implement 怎么用 实现类可以不重写全部抽象方法吗
回答 2 java 中的 implement 怎么用,普通类不可以,如果不想全部重写,这个类必须改成 abstract 抽象类,由它的子类继续实现剩下抽象方法。
问题 3 java 中的 implement 怎么用 可以同时实现多个接口吗
回答 3 java 中的 implement 怎么用,可以,类后面 implements 后面写多个接口,逗号分隔,这也是 Java 弥补类单继承限制的方式。
问题 4 java 中的 implement 怎么用 接口 default 方法需要重写吗
回答 4 java 中的 implement 怎么用,JDK8 接口 default 默认方法不需要强制重写,只有多个接口同名 default 方法产生冲突的时候,实现类才必须手动重写。
【免责申明】
本文内容仅作为 Java implements 关键字基础语法讲解,不同 JDK 版本接口相关语法存在新增特性,相关示例仅用于学习参考,复杂多接口冲突场景请上机测试验证。


