次のコードスニペット
class A {
def foo = "A.foo"
}
trait B {
def foo = "B.foo"
def bar = "B.bar"
}
val x = new A with B
コンパイルされないため
error: overriding method foo in class A of type => java.lang.String;
method foo in trait B of type => java.lang.String needs `override' modifier
ただし、私の意図は次のようにxを定義することです。
x.foo => "A.foo"
x.bar => "B.par"
つまり、xがBからbarを継承するだけで、fooは継承しないようにします。それを達成する方法はscalaにありますか?