国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

2021-12-30 22:27Java面試真題解析磊哥 Java教程

在面向?qū)ο缶幊讨校椒ㄖ貙?override)是一種語(yǔ)言特性,它是多態(tài)的具體表現(xiàn),它允許子類重新定義父類中已有的方法,且子類中的方法名和參數(shù)類型及個(gè)數(shù)都必須與父類保持一致,這就是方法重寫。

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

在面向?qū)ο缶幊讨校?a href="/article/132596.html">方法重寫(override)是一種語(yǔ)言特性,它是多態(tài)的具體表現(xiàn),它允許子類重新定義父類中已有的方法,且子類中的方法名和參數(shù)類型及個(gè)數(shù)都必須與父類保持一致,這就是方法重寫。

方法重寫最簡(jiǎn)單的示例如下,定義一個(gè)父類 Father 和子類 Son,父類中有一個(gè) method 方法,而在子類中會(huì)重寫 method 方法,具體實(shí)現(xiàn)代碼如下。父類 Father 實(shí)現(xiàn)代碼如下:

  1. /**
  2. * 父類
  3. */
  4. class Father {
  5. public void method(String name) {
  6. System.out.println("Father:" + name);
  7. }
  8. }

子類中重寫父類 method 方法,具體實(shí)現(xiàn)代碼如下:

  1. /**
  2. * 子類
  3. */
  4. class Son extends Father {
  5. @Override
  6. public void method(String name) {
  7. // 子類中重新定義了打印的行為,不再是 Father:XXX,而是 Son:XXX
  8. System.out.println("Son:" + name);
  9. }
  10. }

在程序中調(diào)用并執(zhí)行 method 方法,具體實(shí)現(xiàn)代碼如下:

  1. public class OverrideExample {
  2. public static void main(String[] args) {
  3. Father father = new Son();
  4. father.method("Java");
  5. }
  6. }

以上程序的執(zhí)行結(jié)果如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

然而在方法重寫的過(guò)程中,也需要注意以下問(wèn)題。

注意事項(xiàng)1:子類權(quán)限控制符不能變小

在 Java 中權(quán)限控制符的級(jí)別如下:

  1. public > protected > 無(wú) > private

假如父類中的方法定義的是 protected 控制符,具體實(shí)現(xiàn)代碼如下:

  1. class Father {
  2. protected void method(String name) {
  3. System.out.println("Father:" + name);
  4. }
  5. }

那么此時(shí)如果子類重寫父類方法時(shí),定義的權(quán)限控制符小于 protected 就會(huì)報(bào)錯(cuò),如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

那么問(wèn)題來(lái)了,子類中的訪問(wèn)控制符能變大嗎?答案是肯定的,如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

結(jié)論:在子類重寫父類的方法時(shí),重寫的方法權(quán)限控制符不能變小,它可以等于或大于父類的權(quán)限控制符。

注意事項(xiàng)2:子類返回值類型只能變小

在講此注意事項(xiàng)之前,我們先來(lái)看點(diǎn)前置知識(shí),在 Java 語(yǔ)言中 Number 類是 Long 的父類,繼承關(guān)系如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

接下來(lái),我們?cè)诟割愔惺褂?Number 類型來(lái)表示方法的返回類型:

  1. class Father {
  2. public Number method(int num1, int num2) {
  3. return num1 + num2;
  4. }
  5. }

在子類的實(shí)現(xiàn)中使用 Number 類型的子類 Long 類型,是可以正常重寫父類的方法的,如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

當(dāng)然,如果和父類的返回類型保持一致也是可以的,如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

但是,如果嘗試將子類中的返回類型變大就會(huì)報(bào)錯(cuò)了,如下圖所示(Object 是 Number 類型的父類):圖片

注意事項(xiàng)3:拋出的異常類型只能變小

如果子類中拋出異常的類型變大,也就是子類方法中拋出的異常類型大于父類方法拋出的異常類型,那么程序就會(huì)報(bào)錯(cuò),如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

此時(shí)正確的解決方案是,保持父類和子類拋出的異常類型相同,如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

注意事項(xiàng)4:方法名必須保持一致

如果子類重寫的方法名不能和父類保持一致,那么程序也會(huì)報(bào)錯(cuò),如下圖所示:

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

注意事項(xiàng)5:方法的參數(shù)類型和個(gè)數(shù)必須保持一致

子類中的方法參數(shù)類型和個(gè)數(shù)都要和父類方法保持一致,不然也會(huì)報(bào)錯(cuò),如下圖所示。

方法的參數(shù)類型不一致

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

方法的參數(shù)個(gè)數(shù)不一致

面試官:java方法重寫時(shí)需要注意的問(wèn)題有哪些?

總結(jié)

本文介紹了 Java 中的方法重寫(Override)是在子類重新定義父類已有方法的過(guò)程,它是面向?qū)ο缶幊讨卸鄳B(tài)的具體表現(xiàn)。我們可以通過(guò) @Override 關(guān)鍵字重寫父類中的某個(gè)方法,但在重寫的過(guò)程中需要注意以下 5 個(gè)問(wèn)題:

  • 子類方法的權(quán)限控制符不能變小;
  • 子類方法返回的類型只能變小;
  • 子類拋出異常的類型只能變小;
  • 子類方法名必須和父類保持一致;
  • 子類方法的參數(shù)類型和個(gè)數(shù)必須和父類保持一致。

參考資料:《碼出高效》

原文鏈接:https://mp.weixin.qq.com/s/_I72minTniH5SAtsDaajYA

延伸 · 閱讀

精彩推薦
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩精品99久久久久中文字幕 | 少妇自摸视频 | 欧美日韩中文在线 | 成人日韩在线观看 | 视频一区二区中文字幕 | 精品视频久久久 | 精品无码久久久久国产 | 欧美亚洲国产一区二区三区 | 精品久久久久久 | 99国产精品久久久久久久久久 | 国产精品一区二区无线 | 成年人黄色免费视频 | 国产精品香蕉在线观看 | 最好看的2019年中文在线观看 | 亚洲成年人网站在线观看 | 欧美在线一区二区 | 国产精品免费看 | av黄色在线播放 | 成人免费大片黄在线播放 | 一区二区三区 在线 | 精品成人在线视频 | 国产精品久久久久久久久 | 四季久久免费一区二区三区四区 | 国产精品久久久久久久久久三级 | 亚洲欧美一区二区三区情侣bbw | 久久av一区二区 | √天堂8在线网 | 香蕉久久久久久 | 看a网站| 亚洲国产成人久久 | 亚洲一区二区视频在线观看 | 亚洲精品一区二区三区蜜桃久 | k8久久久一区二区三区 | 欧美精品一区在线 | 91超碰在线观看 | 久久久高清 | 日韩欧美三级在线观看 | 密臀av| 国产成人高清视频 | 偷拍一区二区 | 国产精品久久久久久久久久新婚 |