一个Scala类可以继承多个特质
(trait), 特质可能会要求使用它们的类支持某个特定特性, 与Java接口不同, Scala特质可以给出这些特质的缺省实现.
要点如下:
Scala中类只能继承一个超类, 可以扩展任意数量的特质
特质可以要求实现它们的类具备特定的字段, 方法和超类
与Java接口不同, Scala特质可以提供方法和字段的实现
当将多个特质叠加使用的时候, 顺序很重要 ---- 排在后面的特质方法先被执行
1. Scala类没有多继承
把毫不相关的类组装在一起, 多继承没有关系, 不过向下面这个简单例子问题就浮出水面了;
class Student { val id: Int = 10 }class Teacher { val id: Int = 10 }
假设可以有:
class TeacherAssistant extends Student, Teacher { ... }