在面向对象的设计中,我们一直追求一种结果,就是良好的复用性,基于这个理念,面向对象的设计中加入了协变与逆变(Covariance and Contravariance)两个概念,我们先来简单了解一下这两个概念. 简介: 协变:由子类向父类方向转变, 用out关键字标识 逆变:由父类向子类方向转变, 用in关键字 举例:Animal是父类,Dog是从Animal继承的子类:如果一个对象的类型是Dog,那么他必然是Animal.有一个获取宠物的方法要接受Dog参数,那么另一个接受Animal参数的方