創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

一.什么是多態(tài)?
1.多態(tài)的定義
指允許不同類的對(duì)象對(duì)同一消息做出響應(yīng)。即同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的行為方式(發(fā)送消息就是函數(shù)調(diào)用)
2.多態(tài)的作用
消除類型之間的耦合關(guān)系
3.多態(tài)的說(shuō)明
近代網(wǎng)絡(luò)小說(shuō)泛濫,我們可以用它來(lái)舉一個(gè)例子
某日你看見(jiàn)你手機(jī)上有多部小說(shuō)同時(shí)更新了,比如有大主宰,雪鷹領(lǐng)主,龍王傳說(shuō)…在這里我們可以描述成如下:
小說(shuō)a=大主宰
小說(shuō)b=雪鷹領(lǐng)主
小說(shuō)c=龍王傳說(shuō)
…
這里所表現(xiàn)的就是多態(tài),大主宰,雪鷹領(lǐng)主,龍王傳說(shuō)都是小說(shuō)的子類,我們僅僅可以通過(guò)小說(shuō)這個(gè)父類就能夠引用不同的子類,這就是多態(tài)–我們只有在運(yùn)行的時(shí)候才會(huì)知道引用變量所指向的具體實(shí)例對(duì)象
當(dāng)然,這樣的理解是是遠(yuǎn)遠(yuǎn)不夠的,要對(duì)多態(tài)的理解入門就必須要明白是”向上轉(zhuǎn)型”
在上面的例子中,小說(shuō)(XS)是父類,大主宰(DZZ),雪鷹領(lǐng)主(XYLZ),龍王傳說(shuō)(LWCS)都是其子類 于是,我們定義如下代碼
DZZ a=new DZZ();
對(duì)于這段代碼應(yīng)該都不會(huì)感覺(jué)到陌生,無(wú)非就是實(shí)例化了一個(gè)大主宰的對(duì)象 那么對(duì)于如下的這段代碼呢?
XS a=new DZZ();
在這里我們這樣理解,這里定義了一個(gè)XS類型的a,讓它指向了DZZ對(duì)象實(shí)例。由于DZZ是繼承于XS,所以DZZ可以自動(dòng)向上轉(zhuǎn)型為XS,所以a可以指向DZZ實(shí)例對(duì)象的。這樣做存在一個(gè)非常大的好處,在繼承中我們知道子類是父類的擴(kuò)展,它可以提供比父類更加強(qiáng)大的功能,如果我們定義了一個(gè)指向子類的父類引用類型,那么它除了能夠引用父類的共性外,還可以使用子類強(qiáng)大的功能
但是向上轉(zhuǎn)型也存在一些缺憾,那就是它必定會(huì)導(dǎo)致一些方法和屬性的丟失,而導(dǎo)致我們不能夠獲取它們。所以父類類型的運(yùn)用可以調(diào)用父類中定義的所有屬性和方法,對(duì)于只存在與子類中的方法和屬性它就望塵莫及了
public class XS {
public void fun1() {
System.out.println("XS中的fun1");
fun2();
}
public void fun2() {
System.out.println("XS中的fun2");
}
}
網(wǎng)頁(yè)標(biāo)題:java中多態(tài)概念、實(shí)現(xiàn)原理詳解-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://chinadenli.net/article26/ceeicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、用戶體驗(yàn)、定制開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容