泛型接口的协变与抗变

1.名词解释

(1)协变:父类的对象用子类代替

(2)抗变:子类的对象用父类代替

如方法的参数是协变的,而返回值是抗变的。

2.泛型接口的协变与抗变

(1)协变:IDemo  ===》IDemo

          泛型类型T只能作为IDemo中方法或属性的返回值

 

(2)抗变:IDemo  ===》IDemo

          泛型类型T只能作为IDemo中方法的参数

简单的,从单词out和in即可理解:out表示泛型类型只能作为返回,in表示泛型类型只能作为输入

3.为什么

由T向ParentT转变是类型安全的,反之则是类型不安全的。

 

转载于:https://www.cnblogs.com/yyg1986/p/7989923.html

你可能感兴趣的:(泛型接口的协变与抗变)