首頁 >Java >java教程 >java中方法重寫和方法重載是什麼?有什麼區別

java中方法重寫和方法重載是什麼?有什麼區別

青灯夜游
青灯夜游原創
2018-11-23 11:03:3510353瀏覽

java中方法重寫和重載是什麼?本篇文章就跟大家介紹在java中方法重寫(覆蓋)和重載是什麼,讓大家可以了解方法重寫和重載的差異。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

方法重載和方法重寫都是物件導向程式設計(OOP)概念,在各種Java實作中得到了高度的應用,是Java中兩個非常重要的概念。下面我們就來詳細了解方法重載和方法重寫。

java中方法重載是什麼?

方法重載使我們能夠擁有多個具有相同名稱和相同或不同返回類型的方法。方法重載的重要一點是所有這些方法必須具有相同返回類型的不同參數。通常的做法是讓方法的實作具有最多的參數,而其他方法(使用較少的參數)只是重定向到「大」方法,為缺少的參數提供預設值,如下所示:

class  OverloadingExample {  
     static int  add(int  a,int  b){ return  a + b;}   
     static int  add(int  a,int  b,int  c){ return  a + b + c;}   
}

java中方法重寫(覆寫)是什麼?

方法重寫(覆寫)是Java繼承OOP原理的一部份。方法重寫(覆蓋)背後的想法是改變子類別中給定方法的實現。換句話說,我們使用method (name, return types, parameters)方法來「覆寫」父類方法的實現,然後在覆寫的方法內實作不同的功能。

註:私有,靜態和最終方法不能在Java中重寫。

範例:

class  Animal {  
   void  eat(){
     System.out.println(“吃 ......” );
   }  
}  
class  Dog  extends  Animal {  
   void  eat(){
      System.out.println(“吃面包......” );
   }  
}

Java中方法重寫(覆蓋)規則

以下是java中方法重寫的規則,在重寫(覆蓋)任何方法時都必須遵循這些規則。

1、方法簽章必須相同,包含回傳類型,方法參數的數量,參數的型別和參數的順序 

2、重寫法不能拋出比原始或重寫方法更高的異常。意味著如果原始方法拋出IOException,那麼重寫方法不能拋出IOException的超類;例如異常,但是它可以拋出IOException的任何子類,或者根本不拋出任何異常。此規則僅適用於Java中已檢查的異常,重寫方法可以自由拋出任何未檢查的異常。

3、重寫方法不能降低重寫方法的可訪問性,意味著如果原始方法或重寫方法是公共的,則重寫方法不能使其受到保護。

下面我們來看看在java中方法重載,與方法重寫的具體範例。

以下是Java中方法重載和方法重寫的範例。為了解釋這個概念,我們創建了兩個類別Loan和PersonalLoan。 createLoan()方法因為具有不同簽章的不同版本而被重載,而在Object類別中宣告的原始toString()方法在Loan和PersonalLoan類別中都被重寫。

Java中方法重寫和方法重載的差異

#java中的方法重載和方法重寫之間存在許多差異,重載與重寫之間的差異也是許多公司常見的Java面試問題之一。下面我們就來看看它們之間的差異:

方法重載

#1、在方法重載中,類別具有相同名稱和兩個或多個個不同參數的方法。

2、在重載中,傳回型別在兩種方法中都會有所不同。

3、在方法呼叫時,JVM會根據傳遞給它的參數呼叫對應的方法。

4、方法重載是多態編譯時的範例。

5、方法重載用於增加程式的可讀性。

方法重寫

1、在方法重寫中,類別和子類別具有相同名稱的方法,包括參數也必須相同。

2、在重寫回傳類型中也應該是相同的。

3、JVM根據用於呼叫方法的物件呼叫對應的方法。

4、方法重寫是多態運行時的範例。

5、方法重寫用於提供其超類別已經提供的方法的特定實作。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

以上是java中方法重寫和方法重載是什麼?有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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