本節(jié)例題中animal可以強(qiáng)制轉(zhuǎn)換成Dog類(lèi),為什么不能強(qiáng)制轉(zhuǎn)換成Cat類(lèi)?Cat類(lèi)和Dog類(lèi)都是Animal類(lèi)的子類(lèi)啊。
本節(jié)例題中animal可以強(qiáng)制轉(zhuǎn)換成Dog類(lèi),為什么不能強(qiáng)制轉(zhuǎn)換成Cat類(lèi)?Cat類(lèi)和Dog類(lèi)都是Animal類(lèi)的子類(lèi)啊。
本節(jié)例題中animal可以強(qiáng)制轉(zhuǎn)換成Dog類(lèi),為什么不能強(qiáng)制轉(zhuǎn)換成Cat類(lèi)?Cat類(lèi)和Dog類(lèi)都是Animal類(lèi)的子類(lèi)啊。
2017-07-07
舉報(bào)
2017-07-07
animal對(duì)象,是由Dog類(lèi)的對(duì)象通過(guò)自動(dòng)類(lèi)型轉(zhuǎn)換得來(lái)的,對(duì)象的屬性和方法可以和Dog類(lèi)的對(duì)象相匹配,所以可以再?gòu)?qiáng)制轉(zhuǎn)換為Dog類(lèi),而不能匹配Cat類(lèi),所以不能強(qiáng)制轉(zhuǎn)換為Cat類(lèi)。
2017-10-22
Cat cat=(Cat)animal;
這個(gè)語(yǔ)句在編譯是是Cat類(lèi)型的,在運(yùn)行時(shí)是Dog類(lèi)型的,兩種類(lèi)型不匹配,所以會(huì)報(bào)錯(cuò)。
也可以? 這樣理解 ,在程序剛開(kāi)始運(yùn)行是,系統(tǒng)為Dog類(lèi)開(kāi)辟一塊內(nèi)存地址空間,Dog類(lèi)屬于animal類(lèi),所以Dog類(lèi)可以轉(zhuǎn),但是Cat類(lèi)就不可以了,應(yīng)為Cat類(lèi)不屬于Dog類(lèi),所以? 不可以轉(zhuǎn)
2017-08-29
簡(jiǎn)單說(shuō),animal之所以可以強(qiáng)制轉(zhuǎn)換為Dog類(lèi)是通過(guò)“Animal animal = dog”語(yǔ)句先自動(dòng)轉(zhuǎn)換了的,所以animal跟Dog相匹配,如果Cat類(lèi)跟Dog類(lèi)一樣先通過(guò)“Animal animal2 = cat”語(yǔ)句自動(dòng)轉(zhuǎn)換后再來(lái)強(qiáng)制把a(bǔ)nimal2轉(zhuǎn)換成Cat也是可以的。你可以自己上手去操作一下,你就能更好的去了解了
2017-07-22
因?yàn)閍nimal已經(jīng)被強(qiáng)制轉(zhuǎn)換成Dog類(lèi),Dog類(lèi)跟Cat類(lèi)不匹配所以不能再進(jìn)行轉(zhuǎn)換。你可以先將animal強(qiáng)制轉(zhuǎn)換成Cat類(lèi),那就不能再?gòu)?qiáng)制轉(zhuǎn)換成Dog類(lèi)了。