Java 继承



  • Java继承(子类和超类)

    在Java中,可以将属性和方法从一个类继承到另一个类。我们将“继承概念”分为两类:
    • 子类(子类) - 从另一个类继承的类
    • 超类(父类) - 从其继承的类
    要从类继承,请使用 extends 关键字。在下面的示例中,Car 类(子类)从 Vehicle类(超类)继承属性和方法:
    class Vehicle {
      protected String brand = "Ford";        // Vehicle attribute
      public void honk() {                    // Vehicle method
        System.out.println("Tuut, tuut!");
      }
    }
    
    class Car extends Vehicle {
      private String modelName = "Mustang";    // Car attribute
      public static void main(String[] args) {
    
        // Create a myCar object
        Car myCar = new Car();
    
        // Call the honk() method (from the Vehicle class) on the myCar object
        myCar.honk();
    
        // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
        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 {
      ...
    }
    
    输出将是这样的:
    Car.java:8: error: cannot inherit from final Vehicle
    class Car extends Vehicle {
                      ^
    1 error)