在Java中,方法覆蓋(也稱為方法重寫)是指子類提供了一個與父類中的方法具有相同名稱、參數列表和返回類型的新方法。這意味著子類的方法將覆蓋父類中的原始方法,從而實現不同的功能。
方法覆蓋的主要目的是允許子類修改或擴展父類的行為,而無需更改原始代碼。這有助于提高代碼的可維護性和可擴展性。
要實現方法覆蓋,需要遵循以下規則:
下面是一個簡單的示例,說明如何在Java中實現方法覆蓋:
// 父類
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
// 子類
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("The dog barks");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();
myAnimal.makeSound(); // 輸出 "The animal makes a sound"
myDog.makeSound(); // 輸出 "The dog barks"
}
}
在這個例子中,Dog
類覆蓋了Animal
類的makeSound()
方法。當我們創建一個Dog
對象并調用makeSound()
方法時,它將輸出 “The dog barks”,而不是 “The animal makes a sound”。