Map map111 = (Map) send(map); 右側是否為強制類型轉換?
取決於 send() 的返回類型與左側變量類型的繼承關係:
send 返回 HashMap,賦值給 Map。send 返回 Map,賦值給 HashMap 需 (HashMap)。繼承鏈:人 → 中國人 → 北京人
send返回「中國人」,用「人」接收 → 無需轉換。- 用「北京人」接收 → 需強轉
(北京人),否則編譯錯誤。
若 send() 返回類型是 Map 的子類,賦值給 Map 變量 不需要 寫 (Map);若返回類型是 Map 的父類或無關類型,則需強轉(且可能拋 ClassCastException)。