這是在前天無意中回顧的時候均函。又模糊了的基本概念升熊,結(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