
上QQ阅读APP看书,第一时间看更新
6.2 型变
6.2.1 类和类型
在Kotlin中,类和类型是不一样的概念。
类型总结了具有相同特征的一组对象的共同特征。我们可以说类型是一个抽象接口,它指定了如何使用对象。类表示该类型的实现,它是具体的数据结构和方法集合。例如List是类,而List<String>是类型。
表6-1充分展示了它们二者的区别。
表6-1 类与类型的区别

因此,子类(SubClass)和子类型(SubType)也有很大区别。
子类型定义的规则一般是这样的:任何时候,如果需要的是A类型值的任何地方,都可以使用B类型值来替换,就可以说B类型是A类型的子类型或者称A类型是B类型的超类型。
之所以要介绍类型,是因为接下来有关于Kotlin型变的内容,跟类型有关。