天天看點

深入解析JAVA重載與重寫的差別

重載的概念

在同一個類中,允許存在一個以上的同名方法,隻要它們的參數個數或者參數類型不同即可。

同一個類、相同方法名

參數清單不同:參數個數不同,參數類型不同

跟方法的權限修飾符、傳回值類型、形參變量名、方法體都沒有關系,都不算重載。隻有滿足以上兩個條件才是重載。

class OverloadTest {
    String name;
    int age;

    public void setOverload() {

    }
    public void setOverload(String a) {

    }
    public void setOverload(int age) {

    }
    public void setOverload(String a, int age) {

    }
}
           

重寫(override/overwrite)

重寫:子類繼承父類以後,可以對父類中同名同參數的方法,進行覆寫操作。

應用:重寫以後,當建立子類對象以後,通過子類對象調用子父類中的同名同參數的方法時,實際執行的是子類重寫父類的方法。

重寫的規定:

  1. 方法的聲明: 權限修飾符 傳回值類型 方法名(形參清單) throws 異常的類型 { }
  2. 約定俗稱:

子類中的叫重寫的方法,父類中的叫被重寫的方法。

子類重寫的方法的方法名和形參清單與父類被重寫的方法的方法名和形參清單相同。

子類重寫的方法的權限修飾符不小于父類被重寫的方法的權限修飾符。

子類不能重寫父類中聲明為private權限的方法。

3. 傳回值類型:

父類被重寫的方法的傳回值類型是void,則子類重寫的方法的傳回值類型隻能是void。

父類被重寫的方法的傳回值類型是A類型,則子類重寫的方法的傳回值類型可以是A類或A類的子類。

父類被重寫的方法的傳回值類型是基本資料類型(比如:double),則子類重寫的方法的傳回值類型必須與父類一緻。

4. 異常類型:子類重寫的方法抛出的異常類型不能大于父類被重寫的方法所抛出的異常類型。

深入解析JAVA重載與重寫的差別

最新2020整理收集的一些高頻面試題(都整理成文檔),有很多幹貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等,

需要擷取這些内容的朋友請加Q君樣:

11604713672