在Java中,要重寫(Override)超類(Superclass)的方法,需要遵循以下步驟:
確保你有一個超類,并且它包含一個你想重寫的方法。這個方法可以是public
、protected
或default
訪問修飾符,但不能是private
。
在子類中,編寫一個與超類中要重寫的方法具有相同名稱、參數列表和返回類型的方法。如果超類方法的返回類型是泛型,那么子類方法的返回類型應該是相同的泛型或者是它的子類型(協變返回類型)。
在子類方法的訪問修飾符中,可以選擇使用public
、protected
或default
,但不能使用private
。子類方法的訪問級別不能比超類方法更嚴格。例如,如果超類方法是public
,那么子類方法也必須是public
。
如果超類方法拋出異常,那么子類方法可以拋出相同的異常,或者是它的子類。不能拋出新的或更寬泛的異常。
在子類方法中,可以使用@Override
注解。這有助于編譯器檢查你是否正確地重寫了超類方法。如果方法簽名不匹配,編譯器將發出錯誤。
下面是一個簡單的例子,演示了如何在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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。