extends Keyword in Java

28 Apr 2025 | 4 分钟阅读

Java 的 extends 关键字 允许类继承超类的属性和行为。它在两个类(子类和超类)之间建立了一个继承关系。子类继承其超类的所有非私有特征和过程,该超类同时充当父类和基类。

语法

在上面的语法中,子类继承了超类的属性。extends 关键字 表明我们正在创建一个派生自现有类的新类。

extends 关键字的示例

示例

编译并运行

输出

barking...
eating...

该示例演示了 Dog 类如何继承 Animal 类的属性和方法。

extends 关键字的用法

  1. 实现继承
  2. 访问超类成员
  3. 方法重写
  4. extends 关键字与 super 关键字

1. 实现继承

Java 支持单重继承,这意味着一个类只能扩展一个超类。

为了处理多重继承场景,Java 使用接口,可以通过 **implements** 关键字来实现。

要阅读更多内容,请访问 Java 继承

2. 访问超类成员

通过使用 extends 关键字,子类可以访问超类的 public 和 protected 成员。

示例

编译并运行

输出

This animal eats food
Type: Animal

在这里,Cat 类可以访问 type 变量,因为它在 Animal 类中被声明为 protected。

3. 方法重写

如果子类(派生类)与超类中声明的方法具有相同的方法,则称为 **Java 中的方法重写**。

阅读更多 Java 中的方法重写

示例

编译并运行

输出

Some sound
Moo
Moo

Cow 类重写了 sound() 方法以提供其版本。

4. 使用 super 关键字

当扩展一个类时,super 关键字允许引用父类成员。

要阅读更多关于 Java 中的 super 关键字

示例

编译并运行

输出

An animal makes a sound
Dog barks

当子类扩展另一个类时,子类构造函数在执行之前会自动调用超类构造函数。

与 extends 相关的构造函数行为

每次子类使用 extends 关键字进行声明时,超类构造函数都会在子类构造函数开始执行之前自动执行。

示例

编译并运行

输出

Animal constructor
Dog constructor

如果超类没有默认构造函数,子类必须使用 super(parameters) 显式调用一个。

要记住的重要事项

  • Java 的 extends 关键字用于继承超类的属性和行为。这个过程称为继承。
  • 尽管子类继承了所有成员,但子类不能直接访问超类的私有成员。
  • 如果一个类被声明为 final,则不能扩展它。
  • 如果一个方法被声明为 final,则不能重写它。

结论

Java 的面向对象设计依赖于 extends 关键字来实现其功能。通过继承,类获得了现有的代码功能,使它们能够进一步发展,同时保持其结构的整体一致性。在 Java 开发实践中,将 extends 作为一种有效的工具将为小型和大型项目带来更简洁、更易于维护的代码。