java中的重寫和重載

這是在前天無意中回顧的時候。又模糊了的基本概念,結(jié)果查詢總結(jié)一下,以便以后不會再次誤導(dǎo)。

基本的個人理解:

1.重寫(overriding)是在子類中的函數(shù),跟父類中的函數(shù)完全相同的函數(shù),即相同的函數(shù)名和參數(shù),這樣稱之為重寫,通過重寫后的函數(shù)實現(xiàn)子類想實現(xiàn)函數(shù)的新功能

2.重載(overloading)是在子類中有多個同樣函數(shù)名的實現(xiàn)同時存在,具有不同參數(shù)個數(shù)和類型。方法名要一樣,但是參數(shù)類型和個數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數(shù)的區(qū)分標準。

參照博客http://blog.csdn.net/zht666/article/details/7869383對于overloading的解釋

針對于重載的偽代碼@overloading,表示重寫(當然不寫也可以),不過寫上有如下好處:

1、可以當注釋用,方便閱讀;

2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯。例如,你如果沒寫@Override,而你下面的方法名又寫錯了,這時你的編譯器是可以編譯通過的,因為編譯器以為這個方法是你的子類中自己增加的方法。

舉例:在重寫父類的onCreate時,在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性。

@Override

public void onCreate(Bundle savedInstanceState)

{…….}

這種寫法是正確的,如果你寫成:

@Override

public void oncreate(Bundle savedInstanceState)

{…….}

編譯器會報如下錯誤:The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以確保你正確重寫onCreate方法(因為oncreate應(yīng)該為onCreate)。而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你為子類定義了一個新方法:oncreate

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 重載(Overloading)和重寫(Overriding)是Java中兩個比較重要的概念 重載 簡單說,就是函數(shù)...
    Blues2013閱讀 411評論 0 1
  • 前言 當我沒有學(xué)習(xí)Java之前,我的一個同事就這樣考我,問我重載和重寫這兩者到底有什么不同,在Objective-...
    神經(jīng)騷棟閱讀 1,102評論 2 3
  • 重寫和重載區(qū)別 重寫方法的規(guī)則如下: 參數(shù)列表:必須與被重寫方法的參數(shù)列表完全匹配。 返回類型:必須與超類中被重寫...
    指尖的跳躍閱讀 857評論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,628評論 18 399
  • 譯:好的時機不可放過,失掉了不會再來。 悟:抓緊機會,不要錯失良機。
    白藥寶寶888777閱讀 243評論 0 0

友情鏈接更多精彩內(nèi)容