trait 多继承详解 1015 2025-11-27 26 阅读1分钟 多个trait的加载顺序 多层trait的加载顺序 空指针异常 通过打印,引导学生找到问题:调用p.log()时,fileName没有值。这就是继承时带的问题:先执行了trait构造器的代码,后执行了具体子类的构造器。而具体的赋值操作是在子类的构造器中才进行,所以,父类的filename没有值,导致空指针异常。 trait与类的区别 相同点:类trait都可以定义成员变量(抽象,具体);继承时都使用extends关键字; 不同点:trait的构造器不能带参数;trait支持多继承;