Java中重載和重寫的區別

來源:互聯網
上載者:User

原文來自:http://blog.csdn.net/zhu_apollo/article/details/1852542

1.重載(Overloading) 重載是一個類中同一種方法多態性的一種表現,一個同名函數具有不同的參數個數/類型(1)      
方法重載是讓類以統一的方式處理不同類型資料的一種手段。多個同名函數同時存在,具有不同的參數個數/類型。重載Overloading是一個類中多態性的一種表現。(2)      
Java的方法重載,就是在類中可以建立多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性。(3)      
重載的時候,方法名要一樣,但是參數類型和個數不一樣,傳回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標準。  2.重寫(Overriding)如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。(1)   
父類與子類之間的多態性,對父類的函數進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。(2)   
若子類中的方法與父類中的某一方法具有相同的方法名、傳回型別和參數表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。(3)   
子類函數的訪問修飾許可權不能少於父類的; Java中@Override的作用,是用來檢查重寫的:

如果想重寫父類的方法,比如toString()方法的話,在被重載的方法前面加上@Override ,這樣編譯的時候系統可以幫你檢查方法的正確性

如下

@Override
public String toString(){...}這是正確的

如果將toString寫成tostring

@Override
public String tostring(){...}編譯器可以檢測出這種寫法是錯誤的,提醒你改正

而如果不加@Override
public String tostring(){...}這樣編譯器是不會報錯的,它會認為是你在類中加的新方法

所以編程時一定得細心點,不是所有錯誤系統都能找到的

 參考資料:1.http://blog.csdn.net/zhu_apollo/article/details/18525422.http://apps.hi.baidu.com/share/detail/329134103.http://www.iteye.com/problems/854

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.