我在重载时理解方法的变化时遇到了一点问题。
虽然由于返回类型的协方差,这非常有效
class Bla
class Fasel extends Bla
trait Test[A] {
def tester(): Bla = new Bla
}
class FooTest[A](a: A) extends Test[A] {
override def tester(): Fasel = new Fasel
}
即使函数的参数类型是逆变的,这个也失败了。
class Bla
class Fasel extends Bla
trait Test[A] {
def tester(a: Fasel): Bla = new Bla
}
class FooTest[A](a: A) extends Test[A] {
override def tester(a: Bla): Fasel = new Fasel
}
我在这里做错了什么?任何指针?
问候, raichoo