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,子類的方法必須滿足以下條件:

  1. 方法名與父類中被覆蓋的方法相同。
  2. 方法參數列表與父類中被覆蓋的方法相同。
  3. 方法返回類型與父類中被覆蓋的方法相同,或者是其子類型。
  4. 聲明 override 的子類必須在訪問許可權上與父類中被覆蓋的方法相同或更寬鬆。

如果不滿足這些條件,Java 編譯器將不會認為這是一個合法的 override,而是會認為這是一個新的方法聲明。