第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么Cat類型不能轉(zhuǎn)換成Animal類型?為什么說animal不含cat類型的元素?可是cat不是animal的子類,繼承了animal的所有屬性和方法嗎?

為什么Cat類型不能轉(zhuǎn)換成Animal類型?為什么說animal不含cat類型的元素?可是cat不是animal的子類,繼承了animal的所有屬性和方法嗎?

正在回答

10 回答


為什么說Cat類型不能轉(zhuǎn)換成Animal類型,因?yàn)镈og dog = new Dog(); ? ??Animal animal = dog; ? Dog dog2 = (Dog)animal這三段代碼告訴你 dog已經(jīng)強(qiáng)轉(zhuǎn)為animal; 如果此刻你再把Cat強(qiáng)轉(zhuǎn)為animal,就相當(dāng)于把Cat強(qiáng)轉(zhuǎn)為dog,子類強(qiáng)轉(zhuǎn)子類,所以就錯(cuò)了! ? 看下面圖片,這樣就可以將Cat轉(zhuǎn)化為Animal類型。。。如果還不明白,自己試試代碼就明白了

http://img1.sycdn.imooc.com//5847b1350001a9d303140103.jpg

1 回復(fù) 有任何疑惑可以回復(fù)我~

視頻里最后是將cat轉(zhuǎn)成dog呀

0 回復(fù) 有任何疑惑可以回復(fù)我~

Cat類是可以轉(zhuǎn)換成Animal類的;

現(xiàn)在的animal實(shí)際上是Dog類的,類型是和Dog相同的,所以animal不含Cat類,所以不能轉(zhuǎn)換成Cat類

3 回復(fù) 有任何疑惑可以回復(fù)我~

最后那一句漏了兩個(gè)括號(hào),重新寫一下以免誤導(dǎo):Cat()和Dog()是沒有關(guān)聯(lián)的,所以不能轉(zhuǎn)換

0 回復(fù) 有任何疑惑可以回復(fù)我~

我也是新手,不保證對(duì),我是這樣理解的:

Dog dog=new Dog();創(chuàng)建對(duì)象引用Dog()這個(gè)子類;把這個(gè)類賦給dog,類型還是Dog類;但這個(gè)類新開辟了地址,而Animal animal=dog把Dog()這個(gè)類賦給了animal,animal的類型是Animal(因?yàn)镈og()是Animal()的子類,就像一條河的支流,本質(zhì)上還是Animal()的一部分,所以可以轉(zhuǎn)換),而Dog dog2=(Dog)animal;

把a(bǔ)nimal賦給dog2,類型是Dog,也就是說這里實(shí)質(zhì)上就是dog2=dog,dog是Dog類,所以可以轉(zhuǎn)換。而Cat cat=(Cat)animal;上面說了Dog()類被引用過來命名為dog,而dog又命名為animal,只是類型變了,也就是說,animal=Dog();也就是說這里我們把Dog()賦給cat,類型轉(zhuǎn)變?yōu)镃at類型,那么問題來了,Cat類型是Cat()的類型,Cat()和和Dog是沒有關(guān)聯(lián)的,所以不能轉(zhuǎn)換

0 回復(fù) 有任何疑惑可以回復(fù)我~

你們?cè)谡f些什么啊



1 回復(fù) 有任何疑惑可以回復(fù)我~

我覺得如果你開辟?Cat cat=new cat; 就可以了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕粉15555107797

我創(chuàng)建了一個(gè)會(huì)報(bào)錯(cuò),
2016-06-29 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕粉小蝸牛 回復(fù) 慕粉15555107797

子類確實(shí)繼承了父類的方法和屬性,但兩個(gè)子類確實(shí)不能轉(zhuǎn)換,因?yàn)槟汩_辟新的空間。所有子類都在父類這個(gè)大空間下,但里邊子類是不同的空間,所以不能轉(zhuǎn)換
2016-06-29 回復(fù) 有任何疑惑可以回復(fù)我~

視頻有一個(gè)父類對(duì)象,并沒有用new關(guān)鍵字開辟內(nèi)存空間,但是子類Dog類創(chuàng)建對(duì)象的時(shí)候使用new關(guān)鍵字開辟了內(nèi)存空間,父類對(duì)象只是像指針一樣指向了子類Dog的對(duì)象,也就是引用。那么animal對(duì)象實(shí)際上還是Dog類對(duì)象,當(dāng)強(qiáng)制轉(zhuǎn)換animal對(duì)象的時(shí)候?qū)嶋H上轉(zhuǎn)換的Dog類的對(duì)象,所以animal對(duì)象不能強(qiáng)制轉(zhuǎn)換成Cat類。強(qiáng)制轉(zhuǎn)換與方法和屬性沒有關(guān)系,與內(nèi)存類型有關(guān)。這是我的理解,希望能幫到你。

3 回復(fù) 有任何疑惑可以回復(fù)我~

因?yàn)樵趧傞_始申明了Animal animal= dog; ? ?animal開辟的是dog 空間,即使你強(qiáng)制轉(zhuǎn)換 ?Cat cat=(Cat) animal;

系統(tǒng)不報(bào)錯(cuò),。但最后運(yùn)行 的時(shí)候 ? cat 并不能與dog 相兼容

0 回復(fù) 有任何疑惑可以回復(fù)我~

是不是在程序中再加一條“Animal animal=cat;“語句就可以將cat類型轉(zhuǎn)換成animal類型了?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

羅建彪

這樣程序員會(huì)報(bào)錯(cuò)的,cat和dog不能兼容
2016-05-12 回復(fù) 有任何疑惑可以回復(fù)我~
#2

啊啊啊啊123

我覺得加一個(gè)Cat cat = new Cat(); Animal animal=cat;就能用了
2016-06-07 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么Cat類型不能轉(zhuǎn)換成Animal類型?為什么說animal不含cat類型的元素?可是cat不是animal的子類,繼承了animal的所有屬性和方法嗎?

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)