版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/number1killer/article/details/82837939
本文部分说明来自书籍和网摘。接口成员实例化之后该接口成员的“返回值类型”和“参数类型”不能改变的接口变量,称之为不变量。协变和逆变正是建立在“不变”的基础之上的。
协变保护( 协变量的类型兼容是从小到大的“拓展性”兼容。)接口成员“输出”的兼容性(允许隐式转换)。
逆变则逆转( 逆变量的类型兼容是从大到小的“缩小性”兼容。)接口成员“输入”的兼容性(禁止隐式转换)。
举例:协变Dog is a animal;逆变Animal is dog.
话不多说,下面一起来看代码实例: