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

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

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

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

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

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

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

但是,父類的引用只能訪問子類重寫的方法,父類中沒有的方法,父類的引用不能訪問。也就是說,通過父類的引用來調(diào)用子類的方法時(shí),不能訪問到子類后來自己定義的方法。

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

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

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

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

多態(tài)

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

重寫原則:兩同兩小一大

兩同:

方法名相同

形參列表要相同

兩小

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

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

一大

子類重寫的方法的訪問權(quán)限要大于等于父類方法的訪問權(quán)限:

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

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

重載原則:兩同一不同

兩同

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

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

一不同

形參列表不同

如何判斷是重載還是重寫

看形參列表:

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

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

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

對形參列表的要求不同

重寫要求形參列表要相同,

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

對拋出的異常的要求不同

重寫要求拋出的異常更小或相等

重載對拋出的異常沒有要求

對返回值類型的要求不同

重寫要求返回值類型更小或相等

重載對返回值類型沒有要求

對訪問權(quán)限的要求不同

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

而重載對訪問權(quán)限沒有要求

發(fā)生的范圍不同

重寫發(fā)生子類繼承父類的時(shí)候

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

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

方法名要相同

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

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

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

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

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

public interface MyInterface { void test();}

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

public class Son extends Father implements MyInterface{}

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

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

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

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

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

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

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

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

可以看到,子類方法提示是重寫的父類方法。

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区在免费观看 | 亚洲欧美日韩综合在线一区二区三区 | 久久精品视频在线观看 | 久久久久久久久免费影院 | 国产丶欧美丶日韩丶不卡影视 | 国产一区二区精品在线观看 | 一区二区三区四区视频在线 | 欧美一欧美一级毛片 | 亚洲免费一区 | 亚洲欧洲一二三区机械有限公司 | 高清午夜毛片 | 男操女视频 | 手机看片1024精品国产 | 亚洲精品视频久久久 | 亚洲国产成人久久综合一 | 理论片我不卡在线观看 | 久久久久亚洲视频 | 亚洲视频天堂 | 欧美成人看片一区二区三区尤物 | 久久免费视频网站 | 美女视频永久黄网站免费观看韩国 | 中文字幕亚洲高清综合 | 精品中文字幕不卡在线视频 | 欧美中文一区 | 日韩欧美在线播放 | 手机在线观看精品国产片 | 欧美日本一道高清二区三区 | 91久久国产精品视频 | 亚洲天堂男人 | 久久91精品国产91 | 日本巨乳中文字幕 | 在线观看日本免费视频大片一区 | 久久久久久久一线毛片 | 爆操巨乳美女 | 亚洲一区二区免费 | 三级网站视频在线观看 | 国产亚洲精品久久麻豆 | 黄色三区| 亚洲在线视频网站 | 成人18免费网站 | 成人午夜视频一区二区国语 |