多態(tài)中的引用類型轉(zhuǎn)換的本質(zhì)和比喻不恰當(dāng)
多態(tài)中的引用類型轉(zhuǎn)換,教程中用了一個茶壺和茶杯倒茶的比喻,我認(rèn)為是很不恰當(dāng)?shù)模瑫`導(dǎo)學(xué)員。
本質(zhì)來說,子類比父類需要更多的存儲空間,子類強制轉(zhuǎn)換成父類,是因為父類要的東西子類都有,所以不存在風(fēng)險,而父類轉(zhuǎn)換成子類,則子類要的東西可能沒有,所有有風(fēng)險。強制準(zhǔn)換有分先不是因為東西溢出,而是東西不夠。
但另一方面,在C語言中(Java也差不多),大類型的數(shù)據(jù)和小類型的數(shù)據(jù)之間的轉(zhuǎn)換,比如從int型轉(zhuǎn)換到char型數(shù)據(jù),這個比喻就很恰當(dāng)了。
2016-01-13
回答的很幫!謝謝咯!
2015-12-29
非常感謝
2015-11-04
...........是這個道理 ?!!! ?...記住所有類都可以轉(zhuǎn)換為Object, 說明往上轉(zhuǎn)沒風(fēng)險,另外一個因為缺少特有內(nèi)容而有風(fēng)險!