Java 中 extends 和 implements 之间的区别

2025年5月5日 | 阅读 4 分钟

Java 中,`extends` 关键字用于继承父类的所有方法和属性,而 `implements` 关键字用于实现接口中定义的方法。

extends 关键字

当一个类继承另一个类,或者一个接口继承另一个接口时,使用 `extends` 关键字。它支持类继承,并允许访问父类的字段和方法。

语法

extends 关键字示例

示例

编译并运行

输出

Animal makes a sound
Dog barks

解释

该程序演示了 Java 中 `extends` 关键字的用法,其中 Dog 类继承自 Animal 超类。通过扩展 Animal,Dog 类可以访问 Animal 中定义的 sound() 方法,除了调用自己的 bark() 方法外,还可以调用此方法。在 main() 方法中,创建了一个 Dog 对象,并调用了继承的 sound() 方法和类特有的 bark() 方法,展示了通过子类化进行的简单类继承和方法访问。

implements 关键字

当一个类实现一个接口时,使用 `implements` 关键字。它允许类为接口中定义的方法提供具体的行为。

语法

implements 关键字示例

示例

编译并运行

输出

Printing document...

解释

该程序演示了 Java 中类如何使用 `implements` 关键字实现接口。Printable 接口定义了一个 print() 方法,Document 类通过为 print() 方法提供实际行为来实现该接口。在 Main 类中,创建了一个 Document 对象,并调用了它的 print() 方法,该方法在控制台打印 Printing document...

Java extends 与 implements 关键字

参数extends 关键字implements 关键字
目的用于继承类或接口。用于实现接口。
使用方类或接口。仅限类。
使用的关键字extendsimplements
父类型类或接口。Interface
继承类型类继承或接口继承。接口实现。
多重继承不支持与类(class A extends B, C)。支持与接口(class A implements X, Y)。
访问父成员它可以访问具体方法和继承方法以及变量。不能使用类实例访问变量;必须实现方法。
方法实现可选(如果超类不是抽象的)必须实现所有接口方法。
构造函数继承它不继承构造函数,但可以使用 `super()` 调用超类构造函数。接口没有构造函数。
多态支持是,子类对象可以通过超类引用来引用。是,实现类对象可以通过接口引用来引用。
接口继承一个接口可以继承另一个接口(interface A extends B)。不适用
类能力它可以重写或继承现有行为。必须为所有声明的方法定义行为。
默认方法支持从超类原样继承它可以从接口继承默认方法(Java 8+)。
代码重用性通过继承促进代码重用。促进抽象和基于契约的设计。
示例class Car extends Vehicle。class Car implements Drivable。

Extends 和 implements 关键字选择题

1. 在 Java 中,当一个类继承另一个类时,使用哪个关键字?

  1. implement
  2. extends
  3. inherits
  4. super
 

答案:B)

解释: `extends` 用于在 Java 中继承另一个类或接口。


2. 以下哪个支持 Java 中的多重继承?

  1. 使用 extends 的类
  2. 使用 extends 的接口
  3. 使用 implements 的类
  4. 同时使用 extends 和 implements 的类
 

答案:C)

解释: Java 只支持通过接口进行多重继承,使用 `implements`。


3. 类实现接口的正确语法是什么?

  1. class MyClass extends MyInterface
  2. interface MyClass implements MyInterface
  3. class MyClass implements MyInterface
  4. interface MyClass extends MyClass2
 

答案:C)

解释: 类使用 `implements` 关键字来实现接口。


4. Java 中的类可以同时扩展另一个类并实现接口吗?

  1. 不能
  2. 可以,但一次只能一个
  3. 是的,它可以扩展一个类并实现多个接口
  4. 仅限于抽象类
 

答案:C)

解释: Java 允许一个类扩展一个类并实现多个接口。


5. 关于 Java 中的 `implements`,以下哪项是不正确的?

  1. 类使用它来实现接口
  2. 类必须实现接口中的所有方法
  3. 它可用于类到类的继承
  4. 它支持多态
 

答案:C)

解释: `implements` 仅用于类到接口的关系,而不是类到类的关系。