小編這次要給大家分享的是JAVA中如何實(shí)現(xiàn)父類與子類轉(zhuǎn)換,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、武漢網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
JAVA語言中, 對象變量是多態(tài)的
那反過來可不可以呢
答案是取決于父類變量引用的是誰
如果父類變量引用的是子類對象的實(shí)例, 可以通過強(qiáng)轉(zhuǎn)被子類變量引用
如果父類變量引用的是父類對象的實(shí)例,則不能被為子類變量引用
上代碼舉例子(本篇一直用這兩個類舉例子,main測試不同):
一個Father類
package test; public class Father { int fatherA; Father(int a) { fatherA=a; } }
一個Son類
package test; public class Son extends Father { int sonB; Son(int a,int b) { super(a); sonB=b; } }
package test; public class MainTest { public static void main(String[] args) { Son son1=new Son(1, 2); Father father1=son1; //子類對象被父類變量引用 System.out.println(father1.fatherA); } }
結(jié)果: 賦值成功!
package test; public class MainTest { public static void main(String[] args) { Father father2=new Son(1, 2); //父類引用了子類對象的實(shí)例 Son son2=(Son)father2; System.out.println(son2.sonB); } }
結(jié)果:轉(zhuǎn)換成功!
這里注意即使引用的是子類實(shí)例轉(zhuǎn)換成子類也需要強(qiáng)轉(zhuǎn), 否則會報錯
package test; public class MainTest { public static void main(String[] args) { Father father2=new Father(1); //父類引用了子類對象的實(shí)例 Son son2=(Son)father2; System.out.println(son2.sonB); } }
結(jié)果:失敗!
看完這篇關(guān)于JAVA中如何實(shí)現(xiàn)父類與子類轉(zhuǎn)換的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。
當(dāng)前名稱:JAVA中如何實(shí)現(xiàn)父類與子類轉(zhuǎn)換
分享網(wǎng)址:http://www.rwnh.cn/article38/jjessp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、、網(wǎng)站改版、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)