型变(协变、逆变、不变)、泛型类

您所在的位置:网站首页 java逆变和协变 型变(协变、逆变、不变)、泛型类

型变(协变、逆变、不变)、泛型类

2024-07-15 10:43| 来源: 网络整理| 查看: 265

章节目录 型变 泛型类 定义: 示例 类型边界

型变

一、协变 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