重載與重寫(xiě)的區(qū)別
重載與重寫(xiě)的區(qū)別
重載與重寫(xiě)其實(shí)是兩個(gè)不同的概念,對(duì)于學(xué)習(xí)java的同學(xué)相信不易混淆。下面是學(xué)習(xí)啦小編為大家準(zhǔn)備的重載與重寫(xiě)的區(qū)別,希望大家喜歡!
重載的定義
(1) 方法重載是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段。多個(gè)同名函數(shù)同時(shí)存在,具有不同的參數(shù)個(gè)數(shù)/類型。
重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。
(2) Java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。
調(diào)用方法時(shí)通過(guò)傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來(lái)決定具體使用哪個(gè)方法, 這就是多態(tài)性。
(3) 重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無(wú)法以返回型別作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。
重寫(xiě)的定義
(1) 父類與子類之間的多態(tài)性,對(duì)父類的函數(shù)進(jìn)行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說(shuō)該方法被重寫(xiě) (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫(xiě)相同的方法。
但有時(shí)子類并不想原封不動(dòng)地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫(xiě)。
方法重寫(xiě)又稱方法覆蓋。
(2)若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數(shù)表,則新方法將覆蓋原有的方法。
如需父類中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當(dāng)前類的父類。
(3)子類函數(shù)的訪問(wèn)修飾權(quán)限不能少于父類的;
重載與重寫(xiě)的區(qū)別
重寫(xiě)多態(tài)性起作用,對(duì)調(diào)用被重載過(guò)的方法可以大大減少代碼的輸入量,同一個(gè)方法名只要往里面?zhèn)鬟f不同的參數(shù)就可以擁有不同的功能或返回值。
用好重寫(xiě)和重載可以設(shè)計(jì)一個(gè)結(jié)構(gòu)清晰而簡(jiǎn)潔的類,可以說(shuō)重寫(xiě)和重載在編寫(xiě)代碼過(guò)程中的作用非同一般.
看了“重載與重寫(xiě)的區(qū)別”的人還看了: