trait 作用:1、抽象类 2、多继承 trait的加载顺序 构造器的执行顺序:先父后子;从左到右 空指针异常 方法1:lazy 方法2:提前定义 trait与类的区别 相同点:都可以定义成员变量,继承时都可以用