亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java 父類(lèi)子類(lèi)有同名方法時(shí)如何調(diào)用的實(shí)現(xiàn)

瀏覽:5日期:2022-08-24 09:10:46

父類(lèi)引用默認(rèn)調(diào)用子類(lèi)重寫(xiě)的方法

如果父類(lèi)的引用p指向了子類(lèi)的實(shí)例,則通過(guò)這個(gè)引用p訪問(wèn)同名方法時(shí),調(diào)用的是子類(lèi)重寫(xiě)的方法。

父類(lèi)引用p可以指向不同的子類(lèi),調(diào)用不同子類(lèi)重寫(xiě)的不同的同名方法,進(jìn)而達(dá)到類(lèi)間多態(tài)的效果。

但是,父類(lèi)的引用只能訪問(wèn)子類(lèi)重寫(xiě)的方法,父類(lèi)中沒(méi)有的方法,父類(lèi)的引用不能訪問(wèn)。也就是說(shuō),通過(guò)父類(lèi)的引用來(lái)調(diào)用子類(lèi)的方法時(shí),不能訪問(wèn)到子類(lèi)后來(lái)自己定義的方法。

子類(lèi)引用默認(rèn)調(diào)用自定義的方法

通過(guò)子類(lèi)的引用訪問(wèn)同名方法時(shí),默認(rèn)是重寫(xiě)之后的同名方法。

子類(lèi)通過(guò)super關(guān)鍵字來(lái)調(diào)用被隱藏的父類(lèi)方法

如果還要訪問(wèn)父類(lèi)的同名方法,可以使用super關(guān)鍵字來(lái)顯示調(diào)用。

多態(tài)

多態(tài)存在的三個(gè)必要條件:要有繼承、要有重寫(xiě)、父類(lèi)變量引用子類(lèi)對(duì)象。

重寫(xiě)原則:兩同兩小一大

兩同:

方法名相同

形參列表要相同

兩小

拋出的異常類(lèi)型小于等于父類(lèi)方法拋出的異常類(lèi)型,也就是要么是原來(lái)的異常類(lèi)型(相等),要么是原來(lái)異常類(lèi)型的子類(lèi)(更小)

返回值類(lèi)型要小于等于比父類(lèi)的返回值類(lèi)型,也就是要么返回原來(lái)的返回值類(lèi)型(相等),要么是原來(lái)的返回值類(lèi)型的子類(lèi)(更小)

一大

子類(lèi)重寫(xiě)的方法的訪問(wèn)權(quán)限要大于等于父類(lèi)方法的訪問(wèn)權(quán)限:

如果原來(lái)的訪問(wèn)類(lèi)型為public,則重寫(xiě)的方法的訪問(wèn)權(quán)限只能是public。

在Java 8之前,Java接口的方法默認(rèn)使用public abstract修飾,所以實(shí)現(xiàn)接口方法時(shí),訪問(wèn)權(quán)限只能是public。

重載原則:兩同一不同

兩同

重載發(fā)生在同一個(gè)類(lèi)中,

跟繼承沒(méi)有關(guān)系.

一不同

形參列表不同

如何判斷是重載還是重寫(xiě)

看形參列表:

當(dāng)方法名相同,形參也相同的時(shí)候,就是重寫(xiě),此時(shí)還需要滿足重寫(xiě)的其他條件,不然就會(huì)出現(xiàn)錯(cuò)誤。

當(dāng)方法名相同,但是形參列表不同的時(shí)候,就是重載

覆蓋和重載的區(qū)別

對(duì)形參列表的要求不同

重寫(xiě)要求形參列表要相同,

而重載要求形參列表不相同

對(duì)拋出的異常的要求不同

重寫(xiě)要求拋出的異常更小或相等

重載對(duì)拋出的異常沒(méi)有要求

對(duì)返回值類(lèi)型的要求不同

重寫(xiě)要求返回值類(lèi)型更小或相等

重載對(duì)返回值類(lèi)型沒(méi)有要求

對(duì)訪問(wèn)權(quán)限的要求不同

重寫(xiě)要求訪問(wèn)權(quán)限要更大或相等,

而重載對(duì)訪問(wèn)權(quán)限沒(méi)有要求

發(fā)生的范圍不同

重寫(xiě)發(fā)生子類(lèi)繼承父類(lèi)的時(shí)候

重載發(fā)生在同一個(gè)類(lèi)中,和繼承沒(méi)有關(guān)系.

重載和重寫(xiě)的相同點(diǎn)

方法名要相同

補(bǔ)充知識(shí):java中子類(lèi)繼承父類(lèi)和實(shí)現(xiàn)接口有同名方法怎么處理

Java是一門(mén)單繼承語(yǔ)言,但是,在子類(lèi)的繼承關(guān)系中,會(huì)存在父類(lèi)和接口有同名方法的情況,這種情況該怎么處理呢?

我們來(lái)一步步驗(yàn)證:

1.子類(lèi)繼承父類(lèi),實(shí)現(xiàn)接口,父類(lèi)和接口有同名方法

以上這篇java 父類(lèi)子類(lèi)有同名方法時(shí)如何調(diào)用的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

public interface MyInterface { void test();}

public class Father { public void test() { System.out.println('父類(lèi)方法'); }}

public class Son extends Father implements MyInterface{}

子類(lèi)直接繼承父類(lèi)和實(shí)現(xiàn)接口不實(shí)現(xiàn)接口方法不報(bào)錯(cuò),說(shuō)明這種情況下默認(rèn)父類(lèi)實(shí)現(xiàn)該方法

2.我們將父類(lèi)中方法注釋掉,看看結(jié)果

public interface MyInterface { void test();}public class Father {// public void test() {// System.out.println('父類(lèi)方法');// }}

java 父類(lèi)子類(lèi)有同名方法時(shí)如何調(diào)用的實(shí)現(xiàn)

很明顯,子類(lèi)在繼承過(guò)程中出現(xiàn)了錯(cuò)誤提示,需要實(shí)現(xiàn)接口中的方法

3.將父類(lèi)中方法取消注釋,子類(lèi)實(shí)現(xiàn)該方法,代碼如下:

public interface MyInterface { void test();}public class Father { public void test() { System.out.println('父類(lèi)方法'); }}

java 父類(lèi)子類(lèi)有同名方法時(shí)如何調(diào)用的實(shí)現(xiàn)

可以看到,子類(lèi)方法提示是重寫(xiě)的父類(lèi)方法。

至此,驗(yàn)證完畢!

以上這篇java 父類(lèi)子類(lèi)有同名方法時(shí)如何調(diào)用的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产日产欧产精品精品推荐在线 | 99热99re| 天堂影院jav成人天堂免费观看 | 黄色免费在线视频 | 国产精品乱码免费一区二区 | 午夜一区二区三区 | 欧美日韩精品在线观看 | 色播亚洲视频在线观看 | 成人福利在线免费观看 | 天天色天天综合 | 嫩草影院在线入口 | 免费久草视频 | 欧美日韩精品一区二区三区 | 美女大黄大色一级特级毛片 | 国产一区视频在线免费观看 | 日韩中文字幕在线视频 | 婷婷亚洲国产成人精品性色 | 亚洲伦理一区二区 | 免费一级欧美片片线观看 | 在线成年人网站 | 亚洲国产精品视频 | 亚洲国产亚洲片在线观看播放 | 欧美在线一级毛片视频 | 日本大片久久久高清免费看 | 国产精品短视频免费观看 | 黑人巨大系列在线播放 | 国产成视频| 亚洲欧美日韩国产精品网 | 亚洲国产天堂在线网址 | 麻豆视频在线观看网站 | 漂亮大学生一级毛片 | 美女免费视频一区二区 | 一级黄色美女 | 国产高清免费在线观看 | 亚洲欧美日韩国产一区二区精品 | 久久福利国产 | 你懂的国产 | 免费福利视频在线观看 | 香蕉视频禁止18 | 韩国网站爱久久 | 亚洲欧美综合国产精品一区 |