Trait多继承顺序:

准则:

  1. 如果有超类,则先调用超类的函数。
  2. 如果混入的trait有父trait,它会按照继承层次先调用父trait的构造函数。
  3. 如果有多个父trait,则按顺序从左到右执行。
  4. 所有父类构造函数和父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
}

运行结果:

最新文章

  1. pycharm 2016.3 注册码
  2. 学习 HTML5-目录
  3. [转]C# WinForm treeview checkbox----递归算法利用
  4. Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南
  5. 设置ASP.NET MVC站点默认页为html页
  6. MySQL 数据类型 详解 (转载)
  7. MJRefreshFooterView
  8. 《C语言程序设计现代方法》第2章 C语言基本概念
  9. Python变量和数据类型
  10. Spark结构式流编程指南
  11. QT4.8.5 连接数据库(读写数据)
  12. 学习PHP的必备开发工具
  13. ImageMagick 使用经验
  14. Jexus 5.4.6 on CentOS 6.6
  15. PAT甲级
  16. mysql优化的21条经验(转)
  17. plsql连接远程oracle数据库
  18. SpringMVC源码阅读:拦截器
  19. 2018.08.31 19:41 自学go语言
  20. 20172301 《Java软件结构与数据结构》实验二报告

热门文章

  1. [python]打开文件操作open用法
  2. zstuoj 4423: panda和卡片
  3. Codeforces Technocup 2017 - Elimination Round 2 E Subordinates(贪心)
  4. pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?
  5. CentOS配置服务开机自启
  6. Accuarcy and Precision
  7. Python初步接触与学习
  8. style属性css与javascript对照表
  9. Solve Hibernate Lazy-Init issue with hibernate.enable_lazy_load_no_trans
  10. TestNG(三) 基本注解BeforeMethod和AfterMethod