【发布时间】:2019-04-24 02:36:19
【问题描述】:
有什么想法为什么不支持方法 2,还是我缺少任何语法?
trait Bar { }
class BarImpl extends Bar{ }
1 Scala 允许使用泛型类型参数覆盖
abstract class Foo {
type T <: Bar
def bar1(f: T): Boolean
}
class FooImpl extends Foo {
type T = BarImpl
override def bar1(f: BarImpl): Boolean = true
}
2 虽然它不允许使用泛型类型类
abstract class Foo2[T <: Bar] {
def bar1(f: T): Boolean
}
class FooImpl2[BarImpl] extends Foo2 {
// Error: Method bar1 overrides nothing
override def bar1(f: BarImpl): Boolean = true
}
【问题讨论】: