大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 詳解Java封裝繼承多態(tài),初學(xué)者必看

詳解Java封裝繼承多態(tài),初學(xué)者必看

更新時(shí)間:2020-06-23 13:32:15 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2413次

面向?qū)ο缶幊蹋∣bject Oriented Programming)有三大特性:封裝、繼承、多態(tài)。在這里,和大家一起加深對(duì)三者的理解。

封裝

封裝可以拆開(kāi)理解,裝,是把數(shù)據(jù)和方法放進(jìn)了類(lèi)里;封,把裝進(jìn)去的數(shù)據(jù)和成員方法加上訪問(wèn)權(quán)限。對(duì)于外界,內(nèi)部細(xì)節(jié)是透明的,暴露給外面的是它的訪問(wèn)方法。

繼承

繼承,是為了重用父類(lèi)代碼。兩個(gè)類(lèi)若具有is a的關(guān)系就可以用extends。另外,繼承也為實(shí)現(xiàn)多態(tài)做了鋪墊。

多態(tài)

程序中定義的引用變量(java有兩大數(shù)據(jù)類(lèi)型,內(nèi)部數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型)所指向的具體類(lèi)型和通過(guò)該引用變量發(fā)出的方法調(diào)用在編譯時(shí)并不確定,而是在程序運(yùn)行期間才確定,即一個(gè)引用變量到低指向哪個(gè)類(lèi)的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類(lèi)中實(shí)現(xiàn)的方法,必須在程序運(yùn)行期間才能決定。

在理解多態(tài)時(shí),總是逃不掉“向上轉(zhuǎn)型”。

問(wèn)題的核心在于,一般情況下,在子類(lèi)繼承父類(lèi)后,子類(lèi)具有父類(lèi)的所有成員和方法。但是在向上轉(zhuǎn)型之后,子類(lèi)中一些獨(dú)有的成員和方法對(duì)于該父類(lèi)類(lèi)型的引用變量則“不可見(jiàn)”。

實(shí)例

package?binaryheap.test;
import?java.awt.image.SinglePixelPackedSampleModel;
//創(chuàng)建一個(gè)Animal類(lèi)
class?Animal?{
????public?void?run()?{
????????System.out.println("Animal在奔跑!!!");
????????sing();
????}
?
????public?void?sing()?{
????????System.out.println("Animal在唱歌~~~");
????}
?
}
?
//創(chuàng)建一個(gè)子類(lèi)繼承父類(lèi)
class?Lion?extends?Animal?{
????//?重載run()方法,和父類(lèi)中的run()方法不是一個(gè)
????//?向上轉(zhuǎn)型時(shí)會(huì)丟失該方法
????public?void?run(String?anotherAnimal)?{
?
????????System.out.println(("Lion在追一只"?+?anotherAnimal));;
????????sing();
????}
????//?重寫(xiě)
????public?void?sing()?{
????????System.out.println("Lion在唱歌~~~");
????}
}
?
public?class?BH?{
????public?static?void?main(String[]?args)?{
????????//?創(chuàng)建一個(gè)父類(lèi)引用,但是指向Lion對(duì)象
????????Animal?animal?=?new?Lion();
????????animal.run();
????}
}


結(jié)果:
Animal在奔跑!!!
Lion在唱歌~~~

Animal animal=new Lion();向上轉(zhuǎn)型后的Animal類(lèi)型的引用,丟失了重載的方法run(),即子類(lèi)中的run(),指向的是父類(lèi)的run(),因此輸出“Animal在奔跑”,而不是“Lion在奔跑”。run()方法中調(diào)用了sing()方法,因?yàn)閟ing()方法被重寫(xiě),引用能夠找到sing()方法,因此引用調(diào)用此sing()方法(動(dòng)然調(diào)用),輸出“Lion在唱歌”。

實(shí)現(xiàn)多態(tài)的必要條件為:繼承、重寫(xiě)、向上轉(zhuǎn)型(或者說(shuō)父類(lèi)引用指向子類(lèi)對(duì)象)。其實(shí)現(xiàn)機(jī)制為:調(diào)用那個(gè)方法是由被引用對(duì)象的類(lèi)型決定,而不是引用變量的類(lèi)型決定的,并且這個(gè)被調(diào)用的方法必須是被子類(lèi)重寫(xiě)過(guò)的。

總結(jié):

•使用父類(lèi)的引用指向子類(lèi)對(duì)象

•該引用只能調(diào)用父類(lèi)中定義的方法和變量

•若子類(lèi)重寫(xiě)了父類(lèi)的一個(gè)方法(只能重寫(xiě)方法,不能重寫(xiě)變量,否則編譯時(shí)期會(huì)報(bào)錯(cuò)),那么調(diào)用的時(shí)候會(huì)調(diào)用子類(lèi)的這個(gè)方法。

此外,在多態(tài)引用時(shí),可能會(huì)涉及到超類(lèi)的構(gòu)造方法。調(diào)用超類(lèi)的構(gòu)造方法的順序是先調(diào)用最遠(yuǎn)的超類(lèi)的構(gòu)造方法。

詳解Java封裝繼承多態(tài),初學(xué)者必看

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“詳解Java封裝繼承多態(tài),初學(xué)者必看”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久精品成人一区二区三区 | 久久99这里只有精品国产 | 精品日本亚洲一区二区三区 | 成人国产在线24小时播放视频 | 久久国产影院 | 欧美高清69hd | 欧美与黑人午夜性猛交久久久 | 伊人久久99亚洲精品久久频 | 国产伦精品一区二区三区免 | 日韩欧美亚州 | 亚洲国产精品久久久久婷婷软件 | 欧美高清日韩 | 亚洲第一视频在线播放 | 久久精品国产欧美成人 | 久久久久久久99精品免费观看 | 久久国产乱子伦精品在 | 久久国产精品99久久久久久老狼 | 久久大香伊蕉在人线国产昨爱 | 天天添天天操 | 欧美第一页在线观看 | 日韩精品一区二区三区在线观看l | 一区二区在线播放福利视频 | 亚州精品永久观看视频 | 国产日本三级 | 深夜你懂的在线网址入口 | 成人免费毛片一区二区三区 | 亚洲欧美一区二区三区综合 | 日日干日日插 | 成人午夜影院在线观看 | 草久在线 | 国产一区二区在线观看免费 | 2021久久精品99精品久久 | jizz成熟丰满老女人 | 91免费国产在线观看尤物 | 爱操综合 | 国产第一亚洲 | 国内精品久久久久久麻豆 | 97在线免费视频观看 | 日韩中文字幕免费在线观看 | 日本一级毛片私人影院 | 欧美中文字幕在线看 |