黑马程序员技术交流社区

标题: 什么是协变和逆变! [打印本页]

作者: ♂张耕明    时间: 2012-10-23 11:28
标题: 什么是协变和逆变!
什么是协变和逆变!
作者: 黑马王亚男    时间: 2012-10-23 18:28
  协变:泛型参数定义的类型只能作为方法的返回类型,不能用作方法参数的类型,且该类型直接或间接地继承自接口方法的返回值类型,称为协变。可以使用关键字out,将泛型类型参数声明为协变参数。
  逆变:泛型参数定义的类型只能作为方法参数的类型,不能用作返回类型,且该类型是接口方法的参数类型的基类型,称为逆变。可以使用in关键字,将泛型类型参数声明为逆变参数。

作者: 霍春雨    时间: 2012-10-23 20:31
1.协变和逆变允许数组类型、委托类型和泛型类型参数进行隐式引用转换。 协变保留分配兼容性,逆变与之相反。   
2.协变和逆变只能用于引用类型,不能用于值类型或void   
3.数组的协变允许派生程度更大的类型的数组隐式转换为派生程度更小的类型的数组,但是此操作运行时不是类型安全的操作.
//返回值不能逆变 ;//参数不能协变;





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2