首頁 >Java >java教程 >java中方法的重寫與重載的區別

java中方法的重寫與重載的區別

伊谢尔伦
伊谢尔伦原創
2016-11-21 15:02:501500瀏覽

重載: 方法名稱相同,但是參數必須有區別(參數不同可以使型別不同,順序不同,個數不同)。重寫(又叫覆蓋): 子類別繼承父類別的方法,並重新實作此方法。

  方法重寫使用注意事項:
  1.方法重寫時,必須有繼承關係
  2.方法重寫時,方法名稱與形式參數必須一致。
  3.方法重寫時 ,子類別的權限修飾符需要大於或等於父類別的權限修飾符。
  4.方法重寫時 ,子類別的回傳值類型必須小於或等於父類別的回傳值型別
  5.方法重寫時 , 子類別的異常型別要小於等於父類別的異常型別。

在這裡面主要拿第三點來測試:

public  class a{
         public static class People
         {
            public void fun(){};
         }
        static class Student extends People
         {
             protected void fun(){
              System.out.println("dfdfd");
             }
         }
   public static void main(String[] args){
        Student p = new Student();
         p.fun();
         }
}

編譯就報錯了,如圖:

java中方法的重寫與重載的區別

原因是父類的方法的權限是public ,而子類改為protected,降低值了權限,所以只能大於或等於如:    

public  class a{
         public static class People
         {
            protected void fun(){};
         }
        static class Student extends People
         {
             public void fun(){
              System.out.println("dfdfd");
             }
         }
   public static void main(String[] args){
        Student p = new Student();
         p.fun();
         }
}

運作成功

java中方法的重寫與重載的區別

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn