方法重写

方法重写是在类之间使用多态的方法。如果一个类是从另一个继承的,那么前者(子类)可以覆盖后者的(超类)方法,并改变实现。

这用于超类定义方法的更一般实现的情况,而子类使用更具体的实现。

请考虑以下示例:

我们有一个哺乳动物课:

class Mammal {
  void whoIam () {
    System.out.println("I am a Mammal");
  }
}

然后我们有一个狗类,这是一个哺乳动物:

class Dog extends Mammal {
  @Override
  void whoIam () {
    super.whoIam();
    System.out.println("I am a Dog!");
  }
}

在这个例子中,我们在 Mammal 类中定义 whoIam() 方法,哺乳动物称它是哺乳动物。但这是一个通用术语,因为那里有很多哺乳动物。然后我们可以从 Mammal 类继承 Dog 类,因为 Dog 是一个哺乳动物。但是,更具体地说,狗是一只狗,也是一种哺乳动物。因此,狗应该说,I am a MammalI am a Dog。因此我们可以从子类(Dog 类)中覆盖超类(Mammal 类,即 whoIam() 类)中的 whoIam() 方法。

我们也可以在 Java 中使用 super.whoIam() 来调用超类的方法。然后,Dog 将表现得像一只狗,同时也表现得像一个哺乳动物。