摘要:
协变 对应返回类型。逆变 对应参数类型。第一点:不管是协变还是逆变,其实都是完全遵从类型兼容的,只是将一个本来应该默认实现的东西,改为显式的声明。这个是从调用者角度出发的观点,你可以把协变和逆变都认为是“理所当然”的。第二点,在理解的时候,需要把参考的对象固定为函数相对函数的兼容上。把父类看作更大的类型。从小到大 是协调的。从大到小 是反常的。举例:大 funA(小)。小 funB(大)。funA 包容 funB。因为所有用到funA的场合都能替换成funB,反之不成立。从函数兼容的角度(funB -> funA):返回类型是协调的。参数类型是反常的。从调用者角度,从来都是由小类型传到大 阅读全文