文章目录
Kotlin
中的泛型形变(variance)
是指如何处理泛型类型
之间的子类型关系
。
在泛型中,如果一个类使用了泛型类型参数
,那么这些参数可以有不同的形变(variance)标记
来指定它们在子类型关系中的行为。
Kotlin 提供了三种形变:
- 协变(covariance)
- 逆变(contravariance)
- 不变(invariance),
分别通过下面几个关键字来进行标记。
- out
- in
- 不使用关键字
1. 协变 (out
)
1.1 协变概念
协变 (out)
允许将泛型类型参数作为输出
,即只能用在 out
位置。
如果一个泛型类 Derived
是另一个泛型类 Base
的子类(Derived : Base
),那