方法的重載:同類中,方法名相同但參數(shù)列表不同。【參數(shù)列表:包括參數(shù)的類型及參數(shù)的個(gè)數(shù)】 方法的重寫(xiě):發(fā)生在具有繼承關(guān)系的子類中,子類覆蓋父類的方法,是多態(tài)性的一種表現(xiàn)。【參數(shù)列表:必須與父類的方法一致】
方法重載時(shí),發(fā)生在同一個(gè)類中,故方法的重載與修飾符無(wú)關(guān)。方法重寫(xiě)時(shí),發(fā)生在子類中,子類中重寫(xiě)的方法的修飾符只能比父類更大不能更小。否則編譯不通過(guò)。
注意:如果父類的方法修飾符為 PRivate ,那么就相當(dāng)于子類新建了一個(gè)與父類同名的方法,但該方法并不是重寫(xiě)的,而是子類新建的方法。
方法重載時(shí),發(fā)生在同一個(gè)類中,故方法的重載與返回值無(wú)關(guān)。方法重寫(xiě)時(shí),發(fā)生在子類中,子類重寫(xiě)的方法的返回值一定要與父類一致。否則編譯不通過(guò)。
方法重載時(shí),方法的參數(shù)列表一定不同。包括參數(shù)的個(gè)數(shù),參數(shù)的類型。方法重寫(xiě)時(shí),參數(shù)列表一定相同。
方法重載時(shí),與異常無(wú)關(guān)。方法重寫(xiě)時(shí),子類方法異常只能拋出比父類異常更小的異常或父類異常的子異常。否則編譯不通過(guò)。
方法發(fā)生重載時(shí)只與方法名及參數(shù)列表相關(guān)。 方法重寫(xiě)時(shí),方法的返回值及方法名必須一致,方法的修飾符只能更大不能更小,異常只能比父類更小不能更大。

代碼例子:
public class Test5 {public void test1(int a,String b){ System.out.println("test1");}public void test1(String b,int a){ System.out.println("test1 overload");}protected void test1() throws RuntimeException{ System.out.println("test1 overload 1");}//重載與返回值無(wú)關(guān)// public int test1(){// System.out.println("test1");// return 0;// }}class TestSub extends Test5{ //重寫(xiě)時(shí),子類中只能拋出比父類更小的異常或父類異常的子異常 //重寫(xiě)時(shí),子類方法的修飾符只能比父類大或與父類相同 public void test1() throws ArrayIndexOutOfBoundsException{ System.out.println("sub test1"); }}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注