// 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
}
}
scala特质构造机制
最新推荐文章于 2024-09-08 12:41:07 发布