型变(协变、逆变、不变)、泛型类 |
您所在的位置:网站首页 › java逆变和协变 › 型变(协变、逆变、不变)、泛型类 |
章节目录
型变
泛型类
定义:
示例
类型边界
型变
一、协变 class Covariant[+T]{ } 对于两种类型 A 和 B,如果 A 是 B 的子类型,那么 Covariant[A] 就是 Covariant[B] 的子类型 二、逆变 class Inversion[-T]{ } 对于两种类型 A 和 B,如果 A 是 B 的子类型,那么 Inversion[B] 就是 Inversionr[A] 的子类型 三、不变 class Invariant[T]{ } 默认情况下,Scala中的泛型类是不变的 如下图所示: 案例: package nj.zb.kb09.oop object CovariantAndContravariant { //协变点(Covariant)和逆变点(Inversion),不变(Invariant) class Animal{ def eat():Unit={ println("动物要吃食物") } } class Cat extends Animal{ override def eat(): Unit = println("猫要吃鱼") } class Tiger extends Cat{ override |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |