部落客廣告聯播

2018年4月18日 星期三

Java泛型(Generic)的Covariant與Contravariant比較

在Java和C#中針對泛型(Generic)在Collection的運用上,都有covariant與Contravariant的觀念,主要針對的就是容器裡面放置的元素若有[父類-子類]的繼承關係時,要如何處理,以及會如何運作,有怎樣的限制。

書看了好幾遍,總是一直搞不懂。
但是我想直接 用程式碼來呈現, 看哪邊編譯能過,哪邊不能過,可能比較能了解到書上再說甚麼。 不多說,直接看下面的程式比較(有紅色底線的 就是編譯不過,錯誤的用法):