課程
/后端開發(fā)
/Java
/Java入門第二季 升級(jí)版
比如
Vehicle v=new Car();
v.test();調(diào)用的就是子類的重寫的test()?
明明創(chuàng)建的是父類對(duì)象???求解!?。?/p>
2016-01-30
源自:Java入門第二季 升級(jí)版 10-2
正在回答
?你可以理解為,用子類a去賦值給父類變量b的時(shí)候,會(huì)將子類中關(guān)于父類的方法和屬性直接復(fù)制給父類b的變量,因?yàn)閍能夠訪問(wèn)父類方法和屬性的前提是繼承自父類的方法、屬性沒有被覆蓋,這是由于繼承時(shí)要保護(hù)父類的原因 ,其實(shí)父類變量b還是指向的是子類a的代碼塊,a并沒有被Java給回收
dongbian 提問(wèn)者
我感覺也是Car對(duì)象
還是說(shuō),就算:
Car a=new Car();
?Vehicle v=a;
v的地址空間仍然是Dog類的地址空間?那么,第二句話在實(shí)際編寫代碼中有什么地方會(huì)用到呢?
額。。不對(duì)不對(duì),創(chuàng)建的應(yīng)該是子類對(duì)象,,
但是:
?Vehicle v=a;//上兩句是不是相當(dāng)于Vehicle v=new Car();? ?
?如果是的話,那第二句不是已經(jīng)轉(zhuǎn)換成父類類型了么?為什么?v.test();調(diào)用的還是子類重寫過(guò)的方法?
?v.test();
?Car w=(Car)v;
?w.test();
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
4 回答求大神解答我的疑惑
1 回答很困惑??!求大神指導(dǎo)
3 回答求解,大神
1 回答Super和This關(guān)系!真的不懂求大神講解
1 回答求大神解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-01-30
?你可以理解為,用子類a去賦值給父類變量b的時(shí)候,會(huì)將子類中關(guān)于父類的方法和屬性直接復(fù)制給父類b的變量,因?yàn)閍能夠訪問(wèn)父類方法和屬性的前提是繼承自父類的方法、屬性沒有被覆蓋,這是由于繼承時(shí)要保護(hù)父類的原因 ,其實(shí)父類變量b還是指向的是子類a的代碼塊,a并沒有被Java給回收
2016-02-01
我感覺也是Car對(duì)象
2016-01-30
還是說(shuō),就算:
Car a=new Car();
?Vehicle v=a;
v的地址空間仍然是Dog類的地址空間?那么,第二句話在實(shí)際編寫代碼中有什么地方會(huì)用到呢?
2016-01-30
額。。不對(duì)不對(duì),創(chuàng)建的應(yīng)該是子類對(duì)象,,
但是:
Car a=new Car();
?Vehicle v=a;//上兩句是不是相當(dāng)于Vehicle v=new Car();? ?
?如果是的話,那第二句不是已經(jīng)轉(zhuǎn)換成父類類型了么?為什么?v.test();調(diào)用的還是子類重寫過(guò)的方法?
?v.test();
?Car w=(Car)v;
?w.test();