2
如何为抽象类中的方法提供参数,以便稍后可以扩展该参数?我将在下面说明一个简单的情况。Scala - 可以扩展的抽象基类中的参数类型
abstract class Car {
def drive(x: Driver)
}
abstract class Driver
case class DriverA(name: String) extends Driver
case class DriverB(name: String, age: Int) extends Driver
class Audi extends Car {
// each child class should have a more specific type for param "x"
def drive(x: DriverA) = { ... }
}
class BMW extends Car {
// each child class should have a more specific type for param "x"
def drive(x: DriverB) = { ... }
}
但是,这并不Scala中工作:“错误:[..]方法参数类型必须完全匹配”
我还试图指定上限类型这样DEF驱动[T <:驱动](x:T):Int,但仍然没有任何运气。看来我缺少一些简单而明显的东西。
这样的设计有什么问题吗?