方法重写
方法重写是在类之间使用多态的方法。如果一个类是从另一个继承的,那么前者(子类)可以覆盖后者的(超类)方法,并改变实现。
这用于超类定义方法的更一般实现的情况,而子类使用更具体的实现。
请考虑以下示例:
我们有一个哺乳动物课:
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
将表现得像一只狗,同时也表现得像一个哺乳动物。