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