Guest User

Untitled

a guest
Oct 21st, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. trait Talkative {def greeting: String}
  2.  
  3. trait English extends Talkative {
  4. override def greeting(): String = "Hello!"
  5. }
  6.  
  7. trait German extends Talkative {
  8. override def greeting(): String = "Guten Tag!"
  9. }
  10.  
  11. trait French extends Talkative {
  12. override def greeting(): String = "Bonjour!"
  13. }
  14.  
  15. class Speaker extends French with German with English
  16. val speaker = new Speaker
  17.  
  18. // The last Trait (with clause) is going to have precedence.
  19. assert(speaker.greeting() == "Hello!")
  20.  
  21. // Changing the type does *not* change it.
  22. assert(speaker.asInstanceOf[German].greeting() == "Hello!")
  23. assert(speaker.asInstanceOf[English].greeting() == "Hello!")
  24. assert(speaker.asInstanceOf[French].greeting() == "Hello!")
Add Comment
Please, Sign In to add comment