国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

通過代碼實例深入解析Java重寫和重載

瀏覽:28日期:2022-08-21 15:33:21

通過代碼實例深入解析Java重寫和重載

重載(Overloading)和重寫(Overriding)是Java中兩個比較重要的概念。但是對于新手來說也比較容易混淆。本文通過兩個簡單的例子說明了他們之間的區別。

定義

重載

簡單說,就是函數或者方法有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或者方法之間,互相稱之為重載函數或者方法。

重寫

重寫指的是在Java的子類與父類中有兩個名稱、參數列表都相同的方法的情況。由于他們具有相同的方法簽名,所以子類中的新方法將覆蓋父類中原有的方法。

重載 VS 重寫

關于重載和重寫,你應該知道以下幾點:

1、重載是一個編譯期概念、重寫是一個運行期間概念。

2、重載遵循所謂“編譯期綁定”,即在編譯時根據參數變量的類型判斷應該調用哪個方法。

3、重寫遵循所謂“運行期綁定”,即在運行的時候,根據引用變量所指向的實際對象的類型來調用方法

4、因為在編譯期已經確定調用哪個方法,所以重載并不是多態。而重寫是多態。重載只是一種語言特性,是一種語法規則,與多態無關,與面向對象也無關。(注:嚴格來說,重載是編譯時多態,即靜態多態。但是,Java中提到的多態,在不特別說明的情況下都指動態多態)

重寫的例子

下面是一個重寫的例子,看完代碼之后不妨猜測一下輸出結果:

class Dog{ public void bark(){ System.out.println('woof '); }}class Hound extends Dog{ public void sniff(){ System.out.println('sniff '); } public void bark(){ System.out.println('bowl'); }}public class OverridingTest{ public static void main(String [] args){ Dog dog = new Hound(); dog.bark(); }}

輸出結果:

bowl

上面的例子中,dog對象被定義為Dog類型。在編譯期,編譯器會檢查Dog類中是否有可訪問的bark()方法,只要其中包含bark()方法,那么就可以編譯通過。在運行期,Hound對象被new出來,并賦值給dog變量,這時,JVM是明確的知道dog變量指向的其實是Hound對象的引用。所以,當dog調用bark()方法的時候,就會調用Hound類中定義的bark()方法。這就是所謂的動態多態性。

重寫的條件

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

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

訪問級別的限制性一定不能比被重寫方法的強;

訪問級別的限制性可以比被重寫方法的弱;

重寫方法一定不能拋出新的檢查異常或比被重寫的方法聲明的檢查異常更廣泛的檢查異常

重寫的方法能夠拋出更少或更有限的異常(也就是說,被重寫的方法聲明了異常,但重寫的方法可以什么也不聲明)

不能重寫被標示為final的方法;

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

重載的例子

class Dog{ public void bark(){ System.out.println('woof '); } //overloading method public void bark(int num){ for(int i=0; i<num; i++) System.out.println('woof '); }}

上面的代碼中,定義了兩個bark方法,一個是沒有參數的bark方法,另外一個是包含一個int類型參數的bark方法。在編譯期,編譯期可以根據方法簽名(方法名和參數情況)情況確定哪個方法被調用。

重載的條件

被重載的方法必須改變參數列表;

被重載的方法可以改變返回類型;

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 一级做性色a爰片久久毛片免费 | 伊大人香蕉久久网欧美 | 中文字幕一区日韩在线视频 | 国产精品99r8在线观看 | 欧美一区a | 亚洲成人影院在线观看 | 日韩精品一区二区三区四区 | 国产三级日本三级美三级 | 精品久久久久久综合日本 | 美女视频免费黄的 | 国产亚洲福利 | 中文字幕水野优香在线网在线 | 成人在免费视频手机观看网站 | 性猛交毛片 | 手机在线视频一区 | 中文字幕亚洲区 | 一级特黄aaa大片在 一级特黄aaa大片在线观看 | 手机在线精品视频每日更新 | 中文精品爱久久久国产 | 老司机亚洲精品影院在线 | 青青草国产免费国产是公开 | 九九色在线视频 | www.91香蕉视频| 免费一级欧美片片线观看 | 一本大道香蕉久在线不卡视频 | 欧美一级人与动毛片免费播放 | 成年人在线观看网站 | 国产精品成人免费视频 | 日本美女黄网站 | 国产欧美日韩精品高清二区综合区 | 91亚洲欧美 | 日韩一级大毛片欧美一级 | 免费看欧美成人性色生活片 | 国产日韩欧美一区二区三区综合 | 亚洲精品在线视频 | 性生话一级国产片 | 免费观看情趣v视频网站 | 中国一级做a爰片久久毛片 中日韩欧美一级毛片 | 成人久久18免费软件 | 国产精品自在线天天看片 | 成人在线综合 |