1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
package mixins
abstract class Super {
def foo: Int
}
trait Mixin extends Super {
abstract override def foo = super.foo
}
trait MixinSub extends Super with Mixin {
abstract override def foo: Int = super.foo
}
trait MixinSubSub extends MixinSub {
abstract override def foo = super.foo
}
class Sub extends Super {
def foo: Int = 1
}
class Base extends Sub with MixinSubSub {
override def foo = super.foo
}
trait Mixin1 extends Sub with MixinSubSub {}
class Base1 extends Mixin1 {}
|