課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
dog和cat同為不同子類的對象
2016-07-10
源自:Java入門第二季 升級版 10-2
正在回答
你要看代碼哦:
Dog dog=new Dog();
Animal animal=dog();
Dog dog2=(Dog)animal;
Cat cat=(Cat)animal;
代碼 分析:
Dog dog=new Dog(); //new了一個Dog()對象,并被dog指向;
Animal animal=dog; //創(chuàng)建變量animal 并賦值為dog;也就是說把dog的指向賦值給animal;
上面其實可以綜合成一句代碼:Animal animal = new Dog();其實就是父類實例化子類對象,即多態(tài);
Dog dog2=(Dog)animal;//創(chuàng)建dog2,為其賦值animal的指向,由于animal的類型是Animal,大(Animal)轉(zhuǎn)?。―og),所以需要強制類型轉(zhuǎn)換;
最后關(guān)鍵來了,創(chuàng)建了一個Cat類型的cat,然后為其賦值animal:
注意:此時animal是Animal類的Dog對象,也就是說你拿動物類中的一只小狗這個對象,去把它變成貓類中的一只貓,你考慮過汪星人的想法么?汪星人不愿意啊,當(dāng)然是不行的。
那為什么之前一句可以呢?之前一句的意思是說,把動物類的一只小狗,放進狗類里然后改名叫dog2,那汪星人當(dāng)然愿意啊,多好啊,找到歸宿了。但是動物類中叫dog的這只小狗其實和狗類中叫dog2的小狗,是同一只大汪汪啊~~~
話說回來,這只小狗真可憐,被你們這幫程序員拎過來拎過去的,還要變成貓,哎~~~
木刻回答,必屬精答,純手打,望采納~~
3128 提問者
給自己加油
狗當(dāng)然不能轉(zhuǎn)到貓了。。但可以把狗叫成動物。 類型只能為本類或父類。
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
4 回答為什么animal能轉(zhuǎn)換成dog類對象,而不能轉(zhuǎn)成cat對象呢?
2 回答為什么Cat不能轉(zhuǎn)換成Animal呢?
4 回答本節(jié)例題中animal可以強制轉(zhuǎn)換成Dog類,為什么不能強制轉(zhuǎn)換成Cat類?Cat類和Dog類都是Animal類的子類啊。
2 回答將animal轉(zhuǎn)換成cat
2 回答為什么我這樣寫 自動生成的是Animal other = (Animal) obj;轉(zhuǎn)換成Animal類 而不是轉(zhuǎn)換為Dog類
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-12
你要看代碼哦:
Dog dog=new Dog();
Animal animal=dog();
Dog dog2=(Dog)animal;
Cat cat=(Cat)animal;
代碼 分析:
Dog dog=new Dog(); //new了一個Dog()對象,并被dog指向;
Animal animal=dog; //創(chuàng)建變量animal 并賦值為dog;也就是說把dog的指向賦值給animal;
上面其實可以綜合成一句代碼:Animal animal = new Dog();其實就是父類實例化子類對象,即多態(tài);
Dog dog2=(Dog)animal;//創(chuàng)建dog2,為其賦值animal的指向,由于animal的類型是Animal,大(Animal)轉(zhuǎn)?。―og),所以需要強制類型轉(zhuǎn)換;
最后關(guān)鍵來了,創(chuàng)建了一個Cat類型的cat,然后為其賦值animal:
Cat cat=(Cat)animal;
注意:此時animal是Animal類的Dog對象,也就是說你拿動物類中的一只小狗這個對象,去把它變成貓類中的一只貓,你考慮過汪星人的想法么?汪星人不愿意啊,當(dāng)然是不行的。
那為什么之前一句可以呢?之前一句的意思是說,把動物類的一只小狗,放進狗類里然后改名叫dog2,那汪星人當(dāng)然愿意啊,多好啊,找到歸宿了。但是動物類中叫dog的這只小狗其實和狗類中叫dog2的小狗,是同一只大汪汪啊~~~
話說回來,這只小狗真可憐,被你們這幫程序員拎過來拎過去的,還要變成貓,哎~~~
木刻回答,必屬精答,純手打,望采納~~
2016-07-10
狗當(dāng)然不能轉(zhuǎn)到貓了。。但可以把狗叫成動物。 類型只能為本類或父類。