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