Trait
Trait
- Scala 中类可以实现任意数量的 Trait
- Trait 可以要求实现它们的类具有某些字段、方法或超类
- Trait 可以提供方法和字段的实现
- 多个Trait叠加在一起时,顺序很重要——其方法先被执行的Trait排在更后面
- Trait 中未实现的方法默认是 abstract 的
- 重写 Trait 中的抽象方法时无需
override
关键词 - 所有 Java 接口都可以当做 Scala 的 Trait 使用
- 构造单个对象时可以为其添加 Trait
- 和类一样,Trait 也可以有构造器:由字段初始化和其他 Trait 语句构成
- Trait 不能有构造器参数,每个 Trait都有一个无参数的构造器
缺少构造器参数是 Trait 与类之间的唯一技术差别, 除此之外,Trait 可以具备类的所有特性,如具体的和抽象的字段,以及超类。
- Scala 需要将Trait翻译成 JVM 的类和接口