成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

10. java 重寫和重載

YorkChen / 1469人閱讀

摘要:重寫繼承的主要特性是子類可以根據(jù)父類已有功能的基礎(chǔ)上進(jìn)行擴(kuò)展,但是也有可能對父類的屬性和方法進(jìn)行重寫覆寫。方法的重寫當(dāng)子類定義了與父類方法名稱相同,參數(shù)列表相同以及返回值相同時(shí),我們稱之為方法的重寫。

重寫(Override)

繼承的主要特性是子類可以根據(jù)父類已有功能的基礎(chǔ)上進(jìn)行擴(kuò)展,但是也有可能對父類的屬性和方法進(jìn)行重寫/覆寫。

方法的重寫

當(dāng)子類定義了與父類方法名稱相同,參數(shù)列表相同以及返回值相同時(shí),我們稱之為方法的重寫。

重寫是子類對父類的允許訪問的方法的實(shí)現(xiàn)過程進(jìn)行重新編寫, 返回值和形參都不能改變。即外殼不變,核心重寫!

方法的重寫規(guī)則

參數(shù)列表必須完全與被重寫方法的相同;

返回類型必須完全與被重寫方法的返回類型相同;

訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。例如:如果父類的一個(gè)方法被聲明為public,那么在子類中重寫該方法就不能聲明為protected。

父類的成員方法只能被它的子類重寫。

聲明為final的方法不能被重寫。

聲明為static的方法不能被重寫,但是能夠被再次聲明。

子類和父類在同一個(gè)包中,那么子類可以重寫父類所有方法,除了聲明為private和final的方法。

子類和父類不在同一個(gè)包中,那么子類只能夠重寫父類的聲明為public和protected的非final方法。

重寫的方法能夠拋出任何非強(qiáng)制異常,無論被重寫的方法是否拋出異常。但是,重寫的方法不能拋出新的強(qiáng)制性異常,或者比被重寫方法聲明的更廣泛的強(qiáng)制性異常,反之則可以。

構(gòu)造方法不能被重寫。

如果不能繼承一個(gè)方法,則不能重寫這個(gè)方法。

重載(Overload)

重載(overloading) 是在一個(gè)類里面,方法名字相同,而參數(shù)不同。返回類型可以相同也可以不同。

每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。

重載規(guī)則:

被重載的方法必須改變參數(shù)列表(參數(shù)個(gè)數(shù)或類型不一樣);

被重載的方法可以改變返回類型,但無法以返回值類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。

被重載的方法可以改變訪問修飾符;

被重載的方法可以聲明新的或更廣的檢查異常;

方法能夠在同一個(gè)類中或者在一個(gè)子類中被重載。

重寫與重載之間的區(qū)別
區(qū)別點(diǎn) 重載(Overload) 重寫(Override)
參數(shù)列表 必須修改 不能修改
返回類型 可以修改 不能修改
異常 可以修改 可以減少或刪除,一定不能拋出新的或者更廣的異常
權(quán)限 可以修改 一定不能做更嚴(yán)格的限制(可以降低限制)
總結(jié)

方法的重寫(Overriding)和重載(Overloading)是java多態(tài)性的不同表現(xiàn),重寫是父類與子類之間多態(tài)性的一種表現(xiàn),重載可以理解成多態(tài)的具體表現(xiàn)形式。

方法重載是一個(gè)類中定義了多個(gè)方法名相同,而他們的參數(shù)的數(shù)量不同或數(shù)量相同而類型和次序不同,則稱為方法的重載(Overloading)。

方法重寫是在子類存在方法與父類的方法的名字相同,而且參數(shù)的個(gè)數(shù)與類型一樣,返回值也一樣的方法,就稱為重寫(Overriding)。

方法重載是一個(gè)類的多態(tài)性表現(xiàn),而方法重寫是子類與父類的一種多態(tài)性表現(xiàn)。

當(dāng)需要在子類中調(diào)用父類的被重寫方法時(shí),要使用super關(guān)鍵字。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73553.html

相關(guān)文章

  • JVM執(zhí)行方法調(diào)用(一)- 重載重寫

    摘要:重寫語言中的定義子類方法有一個(gè)方法與父類方法的名字相同且參數(shù)類型相同。父類方法的返回值可以替換掉子類方法的返回值。思維導(dǎo)圖參考文檔極客時(shí)間深入拆解虛擬機(jī)是如何執(zhí)行方法調(diào)用的上廣告 原文 回顧Java語言中的重載與重寫,并且看看JVM是怎么處理它們的。 重載Overload 定義: 在同一個(gè)類中有多個(gè)方法,它們的名字相同,但是參數(shù)類型不同。 或者,父子類中,子類有一個(gè)方法與父類非私有方...

    韓冰 評(píng)論0 收藏0
  • 從jvm角度看懂類初始化、方法重載、重寫。

    摘要:對應(yīng)的代碼接下來的句是關(guān)鍵部分,兩句分分別把剛剛創(chuàng)建的兩個(gè)對象的引用壓到棧頂。所以雖然指令的調(diào)用是相同的,但行調(diào)用方法時(shí),此時(shí)棧頂存放的對象引用是,行則是。這,就是語言中方法重寫的本質(zhì)。 類初始化 在講類的初始化之前,我們先來大概了解一下類的聲明周期。如下圖 類的聲明周期可以分為7個(gè)階段,但今天我們只講初始化階段。我們我覺得出來使用和卸載階段外,初始化階段是最貼近我們平時(shí)學(xué)的,也是筆試...

    tinyq 評(píng)論0 收藏0
  • 【金三銀四】面試題之java基礎(chǔ)

    摘要:中,任何未處理的受檢查異常強(qiáng)制在子句中聲明。運(yùn)行時(shí)多態(tài)是面向?qū)ο笞罹璧臇|西,要實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)需要方法重寫子類繼承父類并重寫父類中已 1、簡述Java程序編譯和運(yùn)行的過程:答:① Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼--字節(jié)碼,創(chuàng)建完源文件之后,程序會(huì)先被編譯成 .class 文件。② 在編譯好的java程序得到.class文件后,使用命令java 運(yùn)行這個(gè) .c...

    Yangyang 評(píng)論0 收藏0
  • 【金三銀四】面試題之java基礎(chǔ)

    摘要:中,任何未處理的受檢查異常強(qiáng)制在子句中聲明。運(yùn)行時(shí)多態(tài)是面向?qū)ο笞罹璧臇|西,要實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)需要方法重寫子類繼承父類并重寫父類中已 1、簡述Java程序編譯和運(yùn)行的過程:答:① Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼--字節(jié)碼,創(chuàng)建完源文件之后,程序會(huì)先被編譯成 .class 文件。② 在編譯好的java程序得到.class文件后,使用命令java 運(yùn)行這個(gè) .c...

    Barrior 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<