多继承时,构造器的调用顺序

33 阅读1分钟
package level

/*
*多继承时,构造器调用顺序
* 1.先父后子。先调用父类构造器,再调用子类构造器
* 2.有多个父类,从左到右的顺序去调用构造器
 */
object class13 {
  trait A {
    println("trait A")
  }

  trait B {
    println("trait B")
  }

  class Class1 extends A with B {
    println("class 1...")
  }

  def main(args:Array[String]): Unit = {
    new Class1()
  }
}
package level

/*
*多继承时,构造器调用顺序
* 1.先父后子。先调用父类构造器,再调用子类构造器
* 2.有多个父类,从左到右的顺序去调用构造器
 */
object class13 {
  trait A {
    println("trait A")
  }

  trait BB {
    println("trait BB")
  }

  trait B extends BB{
    println("trait B")
  }

  trait CC {
    println("trait CC")
  }

  trait C extends CC{
    println("trait C")
  }

  class Class1 extends B with A with C {
    println("class 1...")
  }

  def main(args:Array[String]): Unit = {
    new Class1()
  }
}

image.png