これは機能しません:
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
質問:
- なぜそれが機能するのですか?
- 2 番目のスニペットはどのように異なりますか? (二重継承の問題について)
- 2 番目のスニペットまたはパターンは何らかの形で役に立ちますか?