在Java中,重寫(Override)超類方法是指子類提供一個與超類中具有相同名稱、參數列表和返回類型的方法。重寫的目的是為了實現多態,使得子類可以根據需要改變繼承自超類的行為。
以下是重寫超類方法的步驟:
確保子類繼承了超類。如果子類沒有繼承超類,那么就無法重寫超類的方法。
在子類中創建一個與超類中要重寫的方法具有相同名稱、參數列表和返回類型的方法。你可以選擇性地使用@Override
注解,這有助于編譯器檢查你是否正確地重寫了方法。
如果超類方法的訪問修飾符是private
,那么你不能在子類中重寫該方法。但是,如果超類方法是protected
或public
,則可以在子類中重寫。
子類方法的訪問修飾符不能比超類方法的訪問修飾符更嚴格。例如,如果超類方法是public
,那么子類方法也必須是public
。
子類方法拋出的異常不能比超類方法拋出的異常更寬泛。你可以選擇拋出與超類方法相同的異常,或者拋出該異常的子類。
下面是一個簡單的例子,演示了如何在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()
方法時,將執行子類中重寫的方法。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。