一个Scala类可以继承多个特质(trait), 特质可能会要求使用它们的类支持某个特定特性, 与Java接口不同, Scala特质可以给出这些特质的缺省实现.

要点如下:

  1. Scala中类只能继承一个超类, 可以扩展任意数量的特质

  2. 特质可以要求实现它们的类具备特定的字段, 方法和超类

  3. 与Java接口不同, Scala特质可以提供方法和字段的实现

  4. 当将多个特质叠加使用的时候, 顺序很重要 ---- 排在后面的特质方法先被执行

1. Scala类没有多继承

把毫不相关的类组装在一起, 多继承没有关系, 不过向下面这个简单例子问题就浮出水面了;

class Student {
    val id: Int = 10
    }class Teacher {
    val id: Int = 10
    }

假设可以有:
class TeacherAssistant extends Student, Teacher { ... }

网友评论