方法重寫

方法重寫是在類之間使用多型的方法。如果一個類是從另一個繼承的,那麼前者(子類)可以覆蓋後者的(超類)方法,並改變實現。

這用於超類定義方法的更一般實現的情況,而子類使用更具體的實現。

請考慮以下示例:

我們有一個哺乳動物課:

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 將表現得像一隻狗,同時也表現得像一個哺乳動物。