精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試系列:為什么不同返回類型不算方法重載?

開發 前端
方法重載是指在同一個類中,定義了多個同名方法,但每個方法的參數類型或者是參數個數不同就是方法重載。

作者:磊哥

來源 | Java面試真題解析(ID:aimianshi666)

轉載請聯系授權(微信ID:GG_Stone)

面試合集:https://gitee.com/mydb/interview

方法重載是指在同一個類中,定義了多個同名方法,但每個方法的參數類型或者是參數個數不同就是方法重載。比如以下 4 個 method 方法就可以稱之為方法重載,如下代碼所示:

  1. public class OverloadExample { 
  2.     public void method() { 
  3.         // doSomething 
  4.     } 
  5.  
  6.     public void method(String name) { 
  7.         // doSomething 
  8.     } 
  9.  
  10.     public void method(Integer id) { 
  11.         // doSomething 
  12.     } 
  13.  
  14.     public void method(Integer id, String name) { 
  15.         // doSomething 
  16.     } 

為什么不同返回類型不算方法重載?

要回答這個問題,首先要了解一點前置內容,方法簽名。方法簽名是由:方法名稱 + 參數類型 + 參數個數組成的一個唯一值,這個唯一值就是方法簽名,而 JVM(Java 虛擬機)就是通過這個方法簽名來決定調用哪個方法的。從方法簽名的組成規則我們可以看出,方法的返回類型不是方法簽名的組成部分,所以當同一個類中出現了多個方法名和參數相同,但返回值類型不同的方法時,JVM 就沒辦法通過方法簽名來判斷到底要調用哪個方法了,如下圖所示:

那為什么返回類型不能做為方法簽名的一部分呢?原因其實很簡單,試想一下,如果方法的返回類型也作為方法簽名的一部分,那么當程序員寫了一個代碼去調用“重載”的方法時,JVM 就不能分辨要調用哪個方法了,如下代碼所示:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method("磊哥"); // JVM 應該調用哪個方法? 
  5.     } 
  6.  
  7.     public int method(String name) { 
  8.         // doSomething 
  9.         return 666; 
  10.     } 
  11.  
  12.     public String method(String name) { 
  13.         // doSomething 
  14.         return "磊哥聊編程"
  15.     } 

像以上情況,JVM 就推斷不出來要調用哪個方法了,所以方法的返回類型不能作為方法簽名的一部分。

方法重載的使用場景

方法重載的經典使用場景是 String 類型的 valueOf 方法,valueOf 方法重載有 9 種實現,如下圖所示:

它可以將數組、對象和基礎數據類型轉換成字符串類型。

方法重載匹配原則

方法重載的調用順序是有前后之分的,比如以下代碼:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method(12); 
  5.     } 
  6.  
  7.     public void method(int num) { 
  8.         System.out.println("調用 int 方法"); 
  9.     } 
  10.  
  11.     public void method(long num) { 
  12.         System.out.println("調用 long 方法"); 
  13.     } 
  14.  
  15.     public void method(Integer num) { 
  16.         System.out.println("調用 Integer 方法"); 
  17.     } 
  18.  
  19.     public void method(Object num) {  
  20.         System.out.println("調用 Object 方法"); 
  21.     } 
  22.  
  23.     public void method(int... num) { // 可選參數 
  24.         System.out.println("調用 int... 方法"); 
  25.     } 

當出現方法重載時,程序要調用哪個方法呢?執行以上程序的執行結果如下:

因此我們可以得出以下結論。

匹配原則1:精準類型匹配

方法重載會優先調用和方法參數類型一模一樣的方法,這是第一優先匹配原則:精準類型匹配。

匹配原則2:基本類型自動轉換成更大的基本類型

接下來我們把精準匹配方法刪掉,觀察一下第二匹配順序是什么?實現代碼如下:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method(12); 
  5.     } 
  6.  
  7.     public void method(long num) { 
  8.         System.out.println("調用 long 方法"); 
  9.     } 
  10.  
  11.     public void method(Integer num) { 
  12.         System.out.println("調用 Integer 方法"); 
  13.     } 
  14.  
  15.     public void method(Object num) {  
  16.         System.out.println("調用 Object 方法"); 
  17.     } 
  18.  
  19.     public void method(int... num) { // 可選參數 
  20.         System.out.println("調用 int... 方法"); 
  21.     } 

以上程序的執行結果如下圖所示:

因此我們可以得出結論:如果是基本數據類型,那么方法重載調用的第二匹配原則是自動轉換成更大的基本數據類型。

匹配原則3:自動裝/拆箱匹配

接下來將第二匹配原則中的 long 方法也刪除掉,實現代碼如下:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method(12); 
  5.     } 
  6.  
  7.     public void method(Integer num) { 
  8.         System.out.println("調用 Integer 方法"); 
  9.     } 
  10.  
  11.     public void method(Object num) { 
  12.         System.out.println("調用 Object 方法"); 
  13.     } 
  14.  
  15.     public void method(int... num) { // 可選參數 
  16.         System.out.println("調用 int... 方法"); 
  17.     } 

以上程序的執行結果如下圖所示:

從上述執行結果可以看出,方法重載的第三匹配原則是,匹配自動裝箱或拆箱的數據類型。

匹配原則4:按照繼承路線依次向上匹配

此時將第三匹配原則中的 Integer 方法刪除,剩下代碼如下:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method(12); 
  5.     } 
  6.  
  7.     public void method(Object num) { 
  8.         System.out.println("調用 Object 方法"); 
  9.     } 
  10.  
  11.     public void method(int... num) { // 可選參數 
  12.         System.out.println("調用 int... 方法"); 
  13.     } 

以上程序的執行結果如下圖所示:

從上述執行結果可以看出,方法重載的第四匹配原則是,依次向上匹配父類的方法調用。

匹配原則5:可變參數匹配

最后將代碼中的方法刪除的只剩一個可選參數,實現代碼如下:

  1. public class OverloadExample { 
  2.     public static void main(String[] args) { 
  3.         OverloadExample example = new OverloadExample(); 
  4.         example.method(12); 
  5.     } 
  6.  
  7.     public void method(int... num) { // 可選參數 
  8.         System.out.println("調用 int... 方法"); 
  9.     } 

以上程序的執行結果如下圖所示:

從上述執行結果可以看出,方法重載的第五匹配原則是,匹配可選參數。

總結

在同一個類中定義了多個同名方法,但每個方法的參數類型或者是參數個數不同就是方法重載。方法重載的典型使用場景是 String 中的 valueOf 方法,它有 9 種實現。方法返回類型不能作為方法重載的依據,因為它不是方法簽名的組成部分。方法重載有 5 個匹配原則:精準匹配、基本類型自動轉換成更大的基本類型匹配、自動裝/拆箱匹配、按照繼承路線依次向上匹配、可變參數匹配。

 

責任編輯:姜華 來源: Java面試真題解析
相關推薦

2022-01-11 06:53:23

面試重寫重載

2022-12-22 14:32:37

JavaScript編程語言

2014-11-19 14:48:58

Nutch爬蟲Lucene

2022-04-11 19:55:26

函數類型函數重載

2019-08-16 10:10:07

hashcodeequalsJava

2021-05-30 09:25:48

HttpETag 網絡協議

2024-09-11 08:38:02

JavaScriptC#語言編程

2020-12-30 10:04:46

userMapper接口

2022-05-12 15:20:17

Wi-Fi 6無線網絡

2013-08-05 11:15:45

GoogleNexus系列

2022-02-15 07:03:04

start 源碼run線程

2023-08-29 07:46:08

Redis數據ReHash

2022-07-27 07:36:01

TCP可靠性

2021-11-08 11:02:01

Go函數重載

2020-08-16 11:29:12

Python函數開發

2020-10-14 08:33:23

Prometheus監控體系

2016-12-28 10:37:46

AndroidGradleApache Ant

2023-12-06 09:10:28

JWT微服務

2022-07-13 07:06:47

HTTPSHTTP協議

2022-07-06 13:48:24

RedisSentinel機制
點贊
收藏

51CTO技術棧公眾號

在线成人精品视频| 亚洲国产日韩综合一区| 日本视频www| 免费看av成人| 这里只有精品免费| 欧美视频免费看欧美视频| 欧美老女人性开放| 国产一区在线观看视频| 91av视频在线| 成人做爰视频网站| 久久综合另类图片小说| 欧美日韩成人在线| 成熟了的熟妇毛茸茸| 日本免费在线观看| 99国产精品国产精品久久| 国产欧美精品xxxx另类| 日本五十熟hd丰满| 99久久.com| 日韩高清av在线| 国产成人强伦免费视频网站| 人狥杂交一区欧美二区| 亚洲美女视频在线| 午夜老司机精品| 丰满人妻妇伦又伦精品国产| 蜜桃久久精品一区二区| 午夜精品蜜臀一区二区三区免费 | 一级黄色免费网站| 亚洲人metart人体| 一本大道亚洲视频| 手机免费看av片| 欧美a在线观看| 欧美性videosxxxxx| 北条麻妃在线视频观看| 在线观看三级视频| 中文字幕亚洲一区二区va在线| 精品一区国产| 黄色片网站免费在线观看| 国产在线日韩欧美| 国产精品视频大全| 国产主播第一页| 国产精品外国| 97在线看福利| 日本在线视频免费观看| 欧美福利电影在线观看| 久久亚洲精品国产亚洲老地址| 人妻视频一区二区| 精品国产午夜| 亚洲人永久免费| 国产成人av一区二区三区不卡| 欧美日韩导航| 日韩精品视频免费专区在线播放| www.四虎精品| 大陆精大陆国产国语精品| 日韩欧美亚洲一区二区| 亚洲成人av免费观看| 成人综合日日夜夜| 91精品综合久久久久久| 午夜免费一级片| 免费一区二区三区在线视频| 91精品在线一区二区| 亚洲一二区在线观看| 欧美高清一级片| 精品国产一区二区三区久久影院| 麻豆传媒在线看| 成人动漫视频| 亚洲国产精品电影| 国产ts丝袜人妖系列视频| 亚洲欧美tv| 中文字幕在线看视频国产欧美| 91动漫免费网站| 欧美3p视频| 色婷婷综合成人av| 久久精品一级片| 亚洲精选国产| 清纯唯美亚洲综合| 做爰视频毛片视频| 国产综合久久久久影院| 91精品久久香蕉国产线看观看| www日本视频| 97久久精品人人做人人爽| 欧美日韩一区二区视频在线 | 久久九九99视频| 日本一区二区三不卡| 日本中文字幕在线看| 亚洲美女免费视频| 欧美亚洲精品一区二区| 日韩高清在线| 日韩精品资源二区在线| 成人免费无码大片a毛片| 欧美日韩伦理| 欧美激情精品久久久久久久变态| 亚洲精品中文字幕乱码三区91| 免费xxxx性欧美18vr| 豆国产97在线| av网站在线免费观看| 亚洲香蕉伊在人在线观| 国产av人人夜夜澡人人爽| 欧美9999| 色黄久久久久久| 国产无码精品视频| 免费美女久久99| 激情视频在线观看一区二区三区| av在线日韩国产精品| 亚洲国产日韩一级| www.超碰97.com| 欧美wwwsss9999| 精品国产一区二区三区在线观看 | 色狠狠综合天天综合综合| 性生活免费在线观看| 国产三级精品三级在线观看国产| 中文字幕av一区二区三区谷原希美| 精品97人妻无码中文永久在线| 日韩电影在线观看一区| 国产精品成人观看视频免费| 无遮挡的视频在线观看| 欧美日韩一区二区在线播放| 国产九九九视频| 日韩av在线播放网址| 91av在线免费观看| 亚洲狼人综合网| 1000精品久久久久久久久| 777米奇影视第四色| 成人偷拍自拍| xxx欧美精品| 波多野结衣大片| 99久久精品国产网站| 超碰10000| 日韩精品第二页| 亚洲午夜性刺激影院| 亚洲 欧美 日韩 综合| 国产精品白丝av| 中文字幕一区二区三区精彩视频| 88xx成人免费观看视频库 | 在线观看黄av| 一本大道久久a久久综合| 日韩精品人妻中文字幕有码| 激情久久久久久| 亚洲自拍偷拍视频| 黄色一级片在线观看| 精品视频色一区| 国产传媒视频在线| 日韩精品成人一区二区在线| 日韩av电影免费在线观看| 欧美日韩精品免费观看视完整| 亚洲精品网站在线播放gif| 91av在线免费视频| 97se狠狠狠综合亚洲狠狠| 精品国产一区三区| 青青草这里只有精品| 国产综合在线视频| 性xxxx搡xxxxx搡欧美| 黑人欧美xxxx| 成人免费毛片糖心| 日韩激情一二三区| 亚洲精品一区国产精品| 精品福利在线| 久久中文精品视频| 性生活三级视频| 五月婷婷久久丁香| 亚洲调教欧美在线| 久久亚洲视频| 免费观看成人高| 啊啊啊久久久| 亚洲美女精品成人在线视频| 中文字幕亚洲乱码熟女1区2区| 国产亚洲一区二区三区四区| 免费看黄色一级大片| 9999国产精品| 国产精品区一区二区三含羞草| 91精品国产黑色瑜伽裤| 亚洲男人av电影| 在线免费观看一区二区| 亚洲免费伊人电影| 日韩精品视频一区二区| 久久久成人网| 中文字幕日韩精品久久| 好吊妞国产欧美日韩免费观看网站 | 粉嫩精品一区二区三区在线观看| 波多野结衣在线播放| 亚洲精品一区在线观看香蕉| 一区二区www| 姬川优奈aav一区二区| 免费观看a级片| 国产成人在线视频网站| 欧美 国产 小说 另类| 日韩欧美一区二区三区在线视频| 99在线视频播放| 自拍一区在线观看| 日韩中文字幕视频在线观看| 色一情一乱一乱一区91av| 在线观看国产精品网站| 欧美极品视频在线观看| 久久久久亚洲综合| 国产黑丝在线视频| 日韩一区二区免费看| 婷婷四房综合激情五月| 国产精品宾馆| 成人福利网站在线观看| 欧美办公室脚交xxxx| 久久精品中文字幕免费mv| 手机av免费在线观看| 欧美日韩视频在线一区二区| 日本系列第一页| 成人免费一区二区三区视频| 亚洲成人网在线播放| 国产99精品国产| 欧美成年人视频在线观看| 最新国产乱人伦偷精品免费网站| 亚洲一区二区高清视频| 欧美日韩看看2015永久免费| 亚洲一区二区三区乱码aⅴ| 国产v综合v| 2018中文字幕一区二区三区| 日本理论片午伦夜理片在线观看| 亚洲一二三在线| 五月天婷婷社区| 欧美成人三级在线| ,一级淫片a看免费| 欧美在线观看禁18| 国产成人在线视频观看| 一区二区三区不卡视频| 91视频免费看片| 国产网红主播福利一区二区| 久久久久久久无码| 国产.欧美.日韩| 日本成人在线免费观看| 麻豆国产一区二区| 精品久久久久久久无码| 午夜亚洲激情| av动漫在线看| 国产一区二区三区的电影| 国产人妻777人伦精品hd| 欧美精品二区| 欧美极品少妇无套实战| 亚洲国产精品久久久天堂| 一区二区三区不卡在线| 日韩一区二区在线| 天堂资源在线亚洲资源| 日韩国产一区二区| 无遮挡亚洲一区| 日本不卡电影| 亚洲欧洲日韩精品| 97精品一区| 亚洲综合视频一区| 亚洲91久久| 超碰97在线看| 国产精品hd| 国产美女在线一区| 在线视频观看日韩| 免费观看美女裸体网站| 国产农村妇女精品一区二区| 少妇性饥渴无码a区免费| 久久久久久一区二区| 成人在线观看a| 麻豆成人免费电影| 99国产精品久久久久久| 国产河南妇女毛片精品久久久| 91视频免费入口| 国产成人午夜精品5599| 99久久免费看精品国产一区| 99re在线精品| 四虎成人免费影院| 亚洲欧洲日产国产综合网| 欧洲猛交xxxx乱大交3| 亚洲国产精品久久人人爱蜜臀| 亚洲免费在线观看av| 欧洲精品中文字幕| 国产特黄一级片| 亚洲精品国产精品国自产观看浪潮 | 久久激情综合网| 女人扒开腿免费视频app| 成人丝袜高跟foot| xxx在线播放| 国产精品久久久久久妇女6080 | 无码人妻aⅴ一区二区三区| 久久一区二区三区四区| 亚洲综合图片一区| 亚洲黄色片在线观看| 在线观看国产亚洲| 欧美日韩精品专区| 免费观看的毛片| 国产一区二区美女视频| 在线观看午夜av| 庆余年2免费日韩剧观看大牛| 日本成人一区二区| 国产高清一区视频| 欧美另类69xxxxx| 大陆极品少妇内射aaaaaa| 午夜一区不卡| 久久综合桃花网| 国产亚洲精品超碰| 中文字幕在线观看成人 | 国产农村老头老太视频| 亚洲精品国产精品乱码不99按摩 | 天堂中文在线资源| 在线观看国产精品日韩av| 性xxxfreexxxx性欧美| 日韩av观看网址| 亚洲日本va| 亚洲精品乱码久久久久久蜜桃91| 黄色亚洲大片免费在线观看| 浓精h攵女乱爱av| av不卡一区二区三区| 中文字幕在线观看2018| 日本高清成人免费播放| 亚洲精品97久久中文字幕| 在线观看精品国产视频| 蜜桃av在线| 成人区精品一区二区| 日韩欧美一区二区三区在线视频| 91成人在线观看喷潮教学| 国产毛片精品视频| 中文字幕精品亚洲| 91官网在线免费观看| 五月激情丁香婷婷| 久久91亚洲精品中文字幕奶水| 亚洲国产尤物| 欧美精品在线一区| 在线日韩中文| 久久精品aⅴ无码中文字字幕重口| 中文字幕一区免费在线观看| 三级网站在线播放| 日韩理论片久久| 国产精品一二三产区| 国产91精品一区二区绿帽| 91久久电影| 亚洲一区日韩精品| 中文字幕av一区二区三区免费看| 日韩欧美成人一区二区三区| 亚洲国产第一页| 高清在线视频不卡| 国产福利久久精品| 黄色av成人| 一级黄色免费视频| 亚洲宅男天堂在线观看无病毒| 国产免费一区二区三区最新不卡 | 99久久久免费精品| 欧美日韩dvd在线观看| 高清毛片在线看| 国产精品久久久久免费a∨大胸| 你懂的一区二区三区| 久久久久久久久久久视频| 91视频免费看| 五月天婷婷激情| 国产一区二区三区中文| 国产另类xxxxhd高清| 色噜噜狠狠一区二区三区| 日韩激情在线观看| 久久久久麻豆v国产| 欧美人成免费网站| 黄色片网站在线观看| 亚洲最大的成人网| 国产精品激情| 中文字幕在线永久| 欧美性猛交丰臀xxxxx网站| 嫩草在线播放| 国产免费一区二区三区在线能观看 | 久久久久久久久艹| 亚洲国产欧美在线成人app| 在线观看涩涩| 亚洲a∨一区二区三区| 美女精品一区二区| 欧美色图亚洲天堂| 亚洲精品一区二区三区在线观看| 国产h片在线观看| 青青草原亚洲| 国产精品一区一区三区| 国产精品成人国产乱| 亚洲免费精彩视频| 国产香蕉久久| 精品国产一区二区三区无码| 99国产精品国产精品毛片| 国产偷人爽久久久久久老妇app| 久久这里有精品视频| 香蕉久久精品日日躁夜夜躁| 邪恶网站在线观看| 亚洲午夜国产一区99re久久| 黑人与亚洲人色ⅹvideos| 成人在线激情视频| 夜夜嗨一区二区| 婷婷丁香综合网| 亚洲精品www久久久| 成人一区视频| 国产夫妻自拍一区| 亚洲国产高清在线观看视频| 亚洲AV午夜精品| 国产精品高潮呻吟久久av黑人| 亚洲影视一区二区三区| 国产中文字幕一区二区| 欧美精品第一页| 老司机深夜福利在线观看| 亚洲一区精彩视频| 99re热这里只有精品视频| 国产精品爽爽久久久久久| 欧美一级免费视频| 中文字幕一区二区三区在线视频| 美女脱光内衣内裤| 亚洲成人激情在线观看| 四虎国产精品免费久久5151| 国产精品丝袜久久久久久消防器材|