這篇文章給大家分享的是有關(guān)java中方法重寫(xiě)和方法重載的區(qū)別有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
目前成都創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、柘城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。java中方法重載是什么?
方法重載使我們能夠擁有多個(gè)具有相同名稱和相同或不同返回類型的方法。方法重載的重要一點(diǎn)是所有這些方法必須具有相同返回類型的不同參數(shù)。通常的做法是讓方法的實(shí)現(xiàn)具有最多的參數(shù),而其他方法(使用較少的參數(shù))只是重定向到“大”方法,為缺少的參數(shù)提供默認(rèn)值,如下所示:
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中方法重寫(xiě)(覆蓋)是什么?
方法重寫(xiě)(覆蓋)是Java繼承OOP原理的一部分。方法重寫(xiě)(覆蓋)背后的思想是改變子類中給定方法的實(shí)現(xiàn)。換句話說(shuō),我們使用method (name, return types, parameters)方法來(lái)“覆蓋”父類方法的實(shí)現(xiàn),然后在覆蓋的方法內(nèi)實(shí)現(xiàn)不同的功能。
注:私有,靜態(tài)和最終方法不能在Java中重寫(xiě)。
例:
class Animal { void eat(){ System.out.println(“吃 ......” ); } } class Dog extends Animal { void eat(){ System.out.println(“吃面包......” ); } }
Java中方法重寫(xiě)(覆蓋)規(guī)則
以下是java中方法重寫(xiě)的規(guī)則,在重寫(xiě)(覆蓋)任何方法時(shí)都必須遵循這些規(guī)則。
1、方法簽名必須相同,包括返回類型,方法參數(shù)的數(shù)量,參數(shù)的類型和參數(shù)的順序
2、重寫(xiě)方法不能拋出比原始或重寫(xiě)方法更高的異常。意味著如果原始方法拋出IOException,那么重寫(xiě)方法不能拋出IOException的超類;例如異常,但是它可以拋出IOException的任何子類,或者根本不拋出任何異常。此規(guī)則僅適用于Java中已檢查的異常,重寫(xiě)方法可以自由拋出任何未檢查的異常。
3、重寫(xiě)方法不能降低重寫(xiě)方法的可訪問(wèn)性,意味著如果原方法或重寫(xiě)方法是公共的,則重寫(xiě)方法不能使其受到保護(hù)。
下面我們來(lái)看看在java中方法重載,與方法重寫(xiě)的具體示例。
以下是Java中方法重載和方法重寫(xiě)的示例。為了解釋這個(gè)概念,我們創(chuàng)建了兩個(gè)類Loan和PersonalLoan。createLoan()方法因?yàn)榫哂胁煌灻牟煌姹径恢剌d,而在Object類中聲明的原始toString()方法在Loan和PersonalLoan類中都被重寫(xiě)。
Java中方法重寫(xiě)和方法重載的區(qū)別
java中的方法重載和方法重寫(xiě)之間存在許多差異,重載與重寫(xiě)之間的區(qū)別也是許多公司常見(jiàn)的Java面試問(wèn)題之一。下面我們就來(lái)看看它們之間的區(qū)別:
方法重載
1、在方法重載中,類具有相同名稱和兩個(gè)或多個(gè)不同參數(shù)的方法。
2、在重載中,返回類型在兩種方法中都會(huì)有所不同。
3、在方法調(diào)用時(shí),JVM根據(jù)傳遞給它的參數(shù)調(diào)用相應(yīng)的方法。
4、方法重載是多態(tài)編譯時(shí)的示例。
5、方法重載用于增加程序的可讀性。
方法重寫(xiě)
1、在方法重寫(xiě)中,類和子類具有相同名稱的方法,包括參數(shù)也必須相同。
2、在重寫(xiě)返回類型中也應(yīng)該是相同的。
3、JVM根據(jù)用于調(diào)用方法的對(duì)象調(diào)用相應(yīng)的方法。
4、方法重寫(xiě)是多態(tài)運(yùn)行時(shí)的示例。
5、方法重寫(xiě)用于提供其超類已經(jīng)提供的方法的特定實(shí)現(xiàn)。
感謝各位的閱讀!關(guān)于java中方法重寫(xiě)和方法重載的區(qū)別有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。