package scaladay02.com.aura
**//协变和逆变 /
**
*** java中泛型的定义是左右两边的泛型要一致
-
例如多态中一下两种方式是不被允许的
-
List list = new ArrayList();
-
List list2 = new ArrayList();
-
scala中默认情况下也是不被允许的但是scala是非常灵活的
-
因此在定义泛型时添加符号[+T]协变[-T]逆变则是可以实现以上的两种情况
-
协变指的是等号左侧的泛型时右边的超类
-
逆变指的是等号左侧泛型是右侧泛型的子类
-
多用用于集合操做**
/*
object CovarianceInversion {
def main(args: Array[String]): Unit = {
val list:Test[Object]=new Testpersonval list1:Test01[person]=new Test01Object
}
}
//定义协变
class Test[+T]{
}
//定义逆变
class Test01[-T]{
}
class person {
“类”
}