Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 25th, 2012  |  syntax: None  |  size: 0.54 KB  |  hits: 19  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // how do I define MyTrait make this work?
  2. // I expect C1#foo() to return "C1: [bar]" and C2#foo() to return "C2: [baz]"
  3.  
  4. trait MyTrait {
  5.   override def foo() = { additionalFoo() + "[" + super.foo() + "]"}
  6.   def additionalFoo(): String
  7. }
  8.  
  9. class A {
  10.   def foo() = "foo"
  11. }
  12.  
  13. class B1 extends A {
  14.   override def foo() = "bar"
  15. }
  16.  
  17. class C1 extends B1 with MyTrait {
  18.   override def additionalFoo() = "C1:"
  19. }
  20.  
  21. class B2 extends A {
  22.  override def foo() = "baz"
  23. }
  24.  
  25. class C2 extends B2 with MyTrait {
  26.   override def additionalFoo() = "C2:"
  27. }