小編給大家分享一下Java多態(tài)怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
站在用戶的角度思考問題,與客戶深入溝通,找到饒陽網(wǎng)站設(shè)計(jì)與饒陽網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋饒陽地區(qū)。
多態(tài)是繼封裝、繼承之后,面向?qū)ο蟮牡谌筇匦浴?/p>
現(xiàn)實(shí)事物經(jīng)常會(huì)體現(xiàn)出多種形態(tài),如學(xué)生,學(xué)生是人的一種,則一個(gè)具體的同學(xué)張三既是學(xué)生也是人,即出現(xiàn)兩種形態(tài)。
Java作為面向?qū)ο蟮恼Z言,同樣可以描述一個(gè)事物的多種形態(tài)。如Student類繼承了Person類,一個(gè)Student的對象便既是Student,又是Person。
多態(tài)的定義格式:及時(shí)就是父類的引用變量指向子類對象
父類類型變量名=new子類類型();
變量名.方法名();
A:普通類多態(tài)定義的格式
父類變量名=new子類();
A:多態(tài)成員變量
當(dāng)子父類中出現(xiàn)同名的成員變量時(shí),多態(tài)調(diào)用該變量時(shí):
編譯時(shí)期:參考的是引用型變量所屬的類中是否有被調(diào)用的成員變量。沒有,編譯失敗。
運(yùn)行時(shí)期:也是調(diào)用引用型變量所屬的類中的成員變量。
簡單記:編譯和運(yùn)行都參考等號的左邊。編譯運(yùn)行看左邊。
B:多態(tài)成員方法
編譯時(shí)期:參考引用變量所屬的類,如果沒有類中沒有調(diào)用的方法,編譯失敗。
運(yùn)行時(shí)期:參考引用變量所指的對象所屬的類,并運(yùn)行對象所屬類中的成員方法。
簡而言之:編譯看左邊,運(yùn)行看右邊
多態(tài)中向上轉(zhuǎn)型與向下轉(zhuǎn)型
多態(tài)的轉(zhuǎn)型分為向上轉(zhuǎn)型與向下轉(zhuǎn)型兩種:
A:向上轉(zhuǎn)型:當(dāng)有子類對象賦值給一個(gè)父類引用時(shí),便是向上轉(zhuǎn)型,多態(tài)本身就是向上轉(zhuǎn)型的過程。
使用格式:
父類類型變量名=new子類類型();
如:
Personp=newStudent();
B:向下轉(zhuǎn)型:一個(gè)已經(jīng)向上轉(zhuǎn)型的子類對象可以使用強(qiáng)制類型轉(zhuǎn)換的格式,將父類引用轉(zhuǎn)為子類引用,這個(gè)過程是向下轉(zhuǎn)型。如果是直接創(chuàng)建父類對象,是無法向下轉(zhuǎn)型的
使用格式:
子類類型變量名=(子類類型)父類類型的變量;
如:
Studentstu=(Student)p;//變量p實(shí)際上指向Student對象
優(yōu)點(diǎn):可以提高可維護(hù)性(多態(tài)前提所保證的),提高代碼的可擴(kuò)展性
缺點(diǎn):無法直接訪問子類特有的成員
以上是“Java多態(tài)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!