跳到主要内容

协变与逆变

阐述

协变、逆变和不变用于描述在有子类型关系时,由这些类型构造的泛型是否也有子类型关系。

  • 协变:类型构造器保持了子类型关系
  • 逆变:类型构造器逆转了子类型关系
  • 不变:这两种都不适用 

实例

数组

  • 只读数组是协变的
  • 只写数组是逆变的
  • 可读可写数组是不变的 

函数

函数对输入类型是逆变的,对输出类型是协变的。

性质

相关内容

参考文献