我有一种用于鸭式打字的类型:
type t={
def x:Int
...
}
class t2 {
def x:Int=1
}
def myt:t=new t2 //ducktyping
我想编写一个强制接口类型的特征,但这不起作用:
trait c extends t { //interface DOES NOT COMPILE
def x:Int=1
}
另一方面:如果我写一个 trait t1 而不是 type t 那么我就失去了鸭式打字功能:
trait t1 {
def x:Int
}
type t=t1
trait c extends t1 { // t1 can be used as interface
def x:Int=1
}
def myt:t=new t2 // DOES NOT COMPILE since t1 is expected
那么我怎样才能同时使用鸭式打字和接口呢?