不變性

預設情況下,所有型別引數都是不變的 - 給定 trait A[B],我們說“AB 上是不變的”。這意味著給定兩個引數化 A[Cat]A[Animal],我們斷言這兩種型別之間沒有子/超類關係 - 它不包含 A[Cat] <: A[Animal]A[Cat] >: A[Animal],無論 CatAnimal 之間的關係如何。

方差註釋為我們提供了一種宣告這種關係的方法,並對型別引數的使用施加了規則,以使關係保持有效。