1) 两个概念:强类型和弱类型
强类型和弱类型指的是两个具有直接或者间接继承关系的两个类。如果一个类是另一个类的直接或者间接基类,那么它为弱类型,直接或者间接子类为强类型
2) in关键字
表示T是一个基于逆变的变体,由于使用了逆变,我们就可以将基于弱类型的委托实例就可以赋值给基于强类型的委托变量
3) out 关键字
表示T是一个协变变体。那么在使用过程中,基于强类型的委托实例就可以赋值给基于弱类型的委托变量
4) “输入参数类型为逆变,返回值类型为协变”
逆变用in关键字,而协变用out关键字。这两个不是偶然,实际上我们可以将协变/逆变与输出/输入匹配起来。