概述
Scala中的逆变和协变
实践
代码
// 在继承中使用
class Person
class User extends Person
class Child extends User
协变
package com.fun.scala
import com.fun.scala.generic.{Child, User}
/**
* 协变(+ 父到子)
*/
object Genericity05 {
def main(args: Array[String]): Unit = {
val test:Test[User] = new Test[Child]
println(test)
}
class Test[+User]
}
逆变
package com.fun.scala
import com.fun.scala.generic.{Child, Person, User}
/**
* 逆变(- 子到父)
*/
object Genericity06 {
def main(args: Array[String]): Unit = {
val test:Test[User] = new Test[Person]
println(test)
}
class Test[-User]
}
结束
Scala中的逆变和协变
至此结束。