Java泛型-协变与逆变
|
概念
协变与逆变 (Covariance and contravariance ) 用来描述具有父/子关系的类型通过类型转换之后的继承关系。
即:如果A、B表示类型,f()表示类型转换, 表示子类与父类之间的继承关系,那么有以下定义:
协变(Covariance):当 A $\subseteq$ B时,f(A) $\subseteq$ f(B)成立;
逆变(contravariance):当A $\subseteq$ B时,f(B) $\subseteq$ f(A)成立;
不变(invariance):当A $\subseteq$ B时,以上均不成立,那么f(A)与f(B)之间不存在继承关系;
先定义几个类之间的继承关系
1 | class Fruit{} // base |