Scala 多继承顺序

mac2022-06-30  71

Trait多继承顺序:

 

准则:

如果有超类,则先调用超类的函数。如果混入的trait有父trait,它会按照继承层次先调用父trait的构造函数。如果有多个父trait,则按顺序从左到右执行。所有父类构造函数和父trait被构造完之后,才会构造本类的构造函数。

 

object TraitOrder extends App { trait Logger { println("Logger") } trait FileLogger extends Logger { println("FileLogger") } trait Closable { println("Closable") } class Person{ println("Constructing Person...") } class Student extends Person with FileLogger with Closable { println("Constructing Student ...") } new Student }

运行结果:

 

转载于:https://www.cnblogs.com/AK47Sonic/p/8016441.html

最新回复(0)