今天北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)小編為大家介紹“詳解java多態(tài)向上轉(zhuǎn)型和向下轉(zhuǎn)型”,希望通過此文大家能夠掌握java多態(tài)向上轉(zhuǎn)型和向下轉(zhuǎn)型,下面就隨小編一起看看java多態(tài)向上轉(zhuǎn)型和向下轉(zhuǎn)型。
1、 方法的多態(tài)性:
重載overload(返回值類型,參數(shù)類型,數(shù)目不同,且定義在同一個類中)、重寫overide(子類與父類中,相同的方法名,不同的方法體);
2、 對象的多態(tài)性:父子類對象的轉(zhuǎn)換;
向上轉(zhuǎn)型:子類對象變?yōu)楦割悓ο螅割?父類對象 = 子類實例,自動轉(zhuǎn)換;
用法: Father f = new Son();
向下轉(zhuǎn)型:父類對象變成子類對象,子類 子類對象 = (子類) 父類實例,強制轉(zhuǎn)換;
Father f = new Son();
Son s = (Son)f; //必須要先有向上轉(zhuǎn)型,才能向下轉(zhuǎn)型
舉例:Father是父類,Son是子類
Father f1 = new Son(); // 這就叫 upcasting (向上轉(zhuǎn)型), 現(xiàn)在f1引用指向一個Son對象
Son s1 = (Son) f1; // 這就叫 downcasting (向下轉(zhuǎn)型),現(xiàn)在f1還是指向Son對象
舉例:Father是父類,Son是子類
Father f2 = new Father();
Son s2 = (Son) f2; // 編譯不出錯,運行時出錯(除非子類和父類擁有相同的屬性和方法),子類引用不能指向父類對象
注:
向上轉(zhuǎn)型,父類實例只能調(diào)用父類與子類共同的成員方法,成員變量只能調(diào)用父類的,子類獨有的實例變量與實例方法將不能調(diào)用,且變量值是父類的,方法的執(zhí)行方法體是子類的。
向下轉(zhuǎn)型,前提是有向上轉(zhuǎn)型,此時對象能夠調(diào)用子類的成員變量以及獨有的成員方法。
例如:Father f1 = new Son(); Son s1 = (Son) f1; 其實就相當(dāng)于Son s1 = new Son();
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)小編為大家介紹的“詳解java多態(tài)向上轉(zhuǎn)型和向下轉(zhuǎn)型”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)免費視頻教程推薦——java初級入門教程下載
java多態(tài)中的向上轉(zhuǎn)型:http://www.bjpowernode.com/xiazai/2600.html
java多態(tài)中的向下轉(zhuǎn)型:http://www.bjpowernode.com/xiazai/2599.html