
Untitled
By: a guest on
Jun 25th, 2012 | syntax:
None | size: 0.54 KB | hits: 19 | expires: Never
// how do I define MyTrait make this work?
// I expect C1#foo() to return "C1: [bar]" and C2#foo() to return "C2: [baz]"
trait MyTrait {
override def foo() = { additionalFoo() + "[" + super.foo() + "]"}
def additionalFoo(): String
}
class A {
def foo() = "foo"
}
class B1 extends A {
override def foo() = "bar"
}
class C1 extends B1 with MyTrait {
override def additionalFoo() = "C1:"
}
class B2 extends A {
override def foo() = "baz"
}
class C2 extends B2 with MyTrait {
override def additionalFoo() = "C2:"
}