逆变是参数的兼容性,协变是返回参数的兼容性.
逆变意味着泛型类型参数可以从一个类更改为他的某个派生类,用in关键字标记,只能出现在输入位置.比如作为方法的参数.
协变意味着泛型类型参数可以从一个类更改为它的基类,用out关键字标记,只能出现在输出位置,比如作为方法的返回类型.