Java 继承

Java 继承(子类和超类)

在 Java 中,可以从一个类继承属性和方法到另一个类。我们将“继承”这个概念分为两类:

  • subclass (子类) - 从另一个类继承的类
  • superclass(父类) - 被继承的类

如需从类继承,请使用 extends 关键字。

在下例中,Car 类(子类)继承了 Vehicle 类(超类)的属性和方法:

实例

class Vehicle {
  protected String brand = "Ford";        // Vehicle 属性
  public void honk() {                    // Vehicle 方法
    System.out.println("Tuut, tuut!");
  }
}

class Car extends Vehicle {
  private String modelName = "Mustang";    // Car 属性
  public static void main(String[] args) {

    // 创建 myCar 对象
    Car myCar = new Car();

    // 调用 myCar 对象上的 honk() 方法(来自 Vehicle 类)
    myCar.honk();

    // 显示 brand 属性的值(来自 Vehicle 类)和来自 Car 类的 modelName 的值
    System.out.println(myCar.brand + " " + myCar.modelName);
  }
}

亲自试一试

您是否注意到 Vehicle 中的 protected 修饰符?

我们将 Vehicle 中的 brand 属性设置为 protected 访问修饰符。如果将其设置为 private,则 Car 类将无法访问它。

为什么以及何时使用“继承”?

- 它对于代码可重用性很有用:请在创建新类时重用现有类的属性和方法。

提示:另请参阅下一章 多态,它使用继承的方法来执行不同的任务。

final 关键词

如果您不希望其他类从某个类继承,请使用 final 关键字:

如果您尝试访问 final 类,Java 将生成错误:

final class Vehicle {
  ...
}

class Car extends Vehicle {
  ...
}

输出将是这样的:

Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
                  ^
1 error)

亲自试一试