0
点赞
收藏
分享

微信扫一扫

scala特质构造机制

影子喵喵喵 2022-02-20 阅读 58
// trait构造机制
// 构造机制规则:
// 每个特质只有一个无参数的构造器
// 也就是说,trait也有构造代码,但和类不同,特质不能有构造函数
//
// 遇到一个类继承另一个类、以及多个trait的情况,党创建该类的实例时,它的构造器执行顺序如下:
// 1.执行父类的构造器
// 2.按照从左到右的顺序,依次执行trait的构造器
// 3.如果trait有父trait,则先执行父trait的构造器
// 4.如果多个trait有同样的父trait,则父trait的构造器只能初始化一次
// 5.执行子类构造器
object 特质构造机制 {

  trait Logger {
    println("执行Logger构造器")
  }

  trait MyLogger extends Logger {
    println("执行MyLogger构造器")
  }

  trait TimeLogger extends Logger {
    println("执行TimeLogger构造器")
  }

  class Person {
    println("执行Person构造器")
  }

  class Student extends Person with MyLogger with TimeLogger {
    println("执行Student构造器")
  }

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

}

举报

相关推荐

0 条评论