JAVA 重載與重寫的區別

1. 重寫(Override)

存在於繼承體系中,指子類實現了一個與父類在方法聲明上完全相同的一個方法。

爲了滿足裏式替換原則,重寫有有以下兩個限制:

  • 子類方法的訪問權限必須大於等於父類方法;
  • 子類方法的返回類型必須是父類方法返回類型或爲其子類型。

使用 @Override 註解,可以讓編譯器幫忙檢查是否滿足上面的兩個限制條件。

2. 重載(Overload)

存在於同一個類中,指一個方法與已經存在的方法名稱上相同,但是參數類型、個數、順序至少有一個不同。

應該注意的是,返回值不同,其它都相同不算是重載。

以下程序編譯時會報錯:

public void func1(){
    System.out.println("func1");
}
public int func1(){    //func1() 重複定義
    System.out.println("func2");
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章