概要
複数のトレイトを使用した場合、コンストラクタが実行される順番は、 スーパークラスのコンストラクタのあとに自分自身のコンストラクタが呼ばれて その後ミックスインしている。
コード
parant.scala
class Parent { println("Parent") } class Child extends Parent { println("Child") } trait A { println("trait A") } trait B { println("trait B") } trait C { println("trait C") } object Parent { def main(args: Array[String]) { val c = new Child with A with B with C // println(c) } }
コマンド
$ scalac parent.scala $ scala Parent Parent Child trait A trait B trait C