Это не работает:
trait Trait
class Class extends Trait with Trait
Компилятор жалуется:
<console>:8: error: trait Trait is inherited twice
class Class extends Trait with Trait
^
<console>:8: error: trait Trait is inherited twice
class Class extends Trait with Trait
^
Это делает:
trait Trait
class Abstraction extends Trait
class Implementation extends Abstraction with Trait
Вопросы:
- Почему это работает?
- Как второй фрагмент отличается? (относительно проблемы двойного наследования)
- Является ли второй фрагмент или шаблон каким-то полезным?