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,但仍然沒有任何運氣。看來我缺少一些簡單而明顯的東西。
這樣的設計有什麼問題嗎?