標籤:
重載overload 和 覆蓋override 是多態的兩種表現形式。
重載overload,發生在同一類中,相當於不同的方法,只是因為功能類似所以起了相同的名字,必須包含不同的參數,可以使用不同的傳回值類型。如代碼:
1 public class OverloadTest { 2 3 public void loadTest(){ 4 System.out.println("loadTest第一個"); 5 } 6 7 public void loadTest(String p_string){ 8 System.out.println("loadTest第二個"); 9 }10 11 public int loadTest(int p_time){12 System.out.println("loadTest第三個");13 return p_time + 100;14 }15 16 public String loadTest(int p_time, String p_str){17 System.out.println("loadTest第四個");18 return p_str;19 }20 21 }
覆蓋override,發生在子類中
先要建立一個父類 OverrideTest
1 public class OverrideTest {2 3 public void test1(){4 System.out.println("基類的方法");5 }6 7 }
再建立一個子類去繼承父類,可以對父類中的方法進行覆蓋,順便把main函數也寫一起了。
1 public class OverrideExtends extends OverrideTest { 2 3 @Override 4 public void test1() { 5 // TODO Auto-generated method stub 6 // super.test1(); 7 System.out.println("子類繼承之後覆蓋後的方法"); 8 } 9 10 public static void main(String[] args){11 12 OverrideTest ot = new OverrideExtends();13 ot.test1();14 15 }16 17 }
這樣的話,運行了之後,結果為“子類繼承之後覆蓋後的方法”,即子類中通過覆蓋的方式將父類中的Test1方法進行了重寫,使用的時候,就直接執行了子類中的方法。
注意:
1. 重寫的時候,方法名稱必須相同。
2. 重寫的時候,參數必須相同。
3. 重寫的時候,傳回值必須相同。(或者都沒有)
java 重載和覆蓋