/** * Trait的构造机制 */ //trait也有主构造代码块,不包含在任何方法中的代码就是trait的主构造器的代码 trait TraitDemo04 { println("这是TraitDemo04的主构造代码块!") } trait TraitDemo04_01 extends TraitDemo04 { println("这是TraitDemo04_01的主构造代码块!") } trait TraitDemo04_02 extends TraitDemo04 { println("这是TraitDemo04_02的主构造代码块!") } class Person { println("这是Person的主构造代码块!") } class Student extends Person with TraitDemo04_01 with TraitDemo04_02 { println("这是Student的主构造代码块!") } object TraitDemo04Object { def main(args: Array[String]): Unit = { /** * 继承了类和trait的构造机制如下: * 1、执行父类的构造代码块 * 2、执行trait的构造代码块。 * 如果继承多个trait,那么从左到右执行trait的构造代码块。 * 如果多个trait继承了同一个trait,那么先执行父trait的构造代码块, * 然后再执行子trait的构造代码块,父trait的构造代码块只会执行一次。 * 3、最后执行自己的构造代码块,即子类的构造代码块最后执行 */ val stu = new Student } }
Scala Trait(四)
最新推荐文章于 2020-11-13 16:24:45 发布