方法重寫
方法重寫是在類之間使用多型的方法。如果一個類是從另一個繼承的,那麼前者(子類)可以覆蓋後者的(超類)方法,並改變實現。
這用於超類定義方法的更一般實現的情況,而子類使用更具體的實現。
請考慮以下示例:
我們有一個哺乳動物課:
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 Mammal
和 I am a Dog
。因此我們可以從子類(Dog
類)中覆蓋超類(Mammal
類,即 whoIam()
類)中的 whoIam()
方法。
我們也可以在 Java 中使用 super.whoIam()
來呼叫超類的方法。然後,Dog
將表現得像一隻狗,同時也表現得像一個哺乳動物。