【发布时间】:2011-05-16 20:53:25
【问题描述】:
我在理解重载时方法的变化时遇到了一点问题。
虽然由于返回类型的协方差,这完美地工作
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
}
我在这里做错了什么?有什么指点吗?
问候, 雷乔
【问题讨论】:
标签: inheritance scala overriding variance