Java override意思
在Java程式語言中,"override"是一個關鍵字,它用於描述子類(派生類)重寫父類(基類)中的方法的行為。當子類提供與父類中某個方法同名、同參數列表的方法實現時,子類的方法就覆蓋(override)了父類的方法。
override的目的是為了提供特定於子類的行為,或者重寫父類中的方法以適應子類的特定需求。當子類對象調用被覆蓋的方法時,執行的是子類中定義的代碼,而不是父類中的代碼。
下面是一個簡單的例子,展示了如何使用override來覆蓋父類的方法:
public class Parent {
public void sayHello() {
System.out.println("Hello from Parent!");
}
}
public class Child extends Parent {
@Override
public void sayHello() {
System.out.println("Hello from Child!");
}
}
public class Main {
public static void main(String[] args) {
Parent parent = new Child();
parent.sayHello(); // 這將調用 Child 中的 sayHello() 方法,因為它是被 override 的。
}
}
在這個例子中,Child 類繼承自 Parent 類,並且它 override 了 Parent 類中的 sayHello() 方法。在 Main 類中,我們創建了一個 Parent 類型的引用,但它指向的是一個 Child 類的對象。當我們通過這個 Parent 引用調用 sayHello() 方法時,實際執行的是 Child 類中 override 後的 sayHello() 方法。
需要注意的是,要實現方法 override,子類的方法必須滿足以下條件:
- 方法名與父類中被覆蓋的方法相同。
- 方法參數列表與父類中被覆蓋的方法相同。
- 方法返回類型與父類中被覆蓋的方法相同,或者是其子類型。
- 聲明 override 的子類必須在訪問許可權上與父類中被覆蓋的方法相同或更寬鬆。
如果不滿足這些條件,Java 編譯器將不會認為這是一個合法的 override,而是會認為這是一個新的方法聲明。