一個Scala類可以繼承多個特質(zhì)
(trait), 特質(zhì)可能會要求使用它們的類支持某個特定特性, 與Java接口不同, Scala特質(zhì)可以給出這些特質(zhì)的缺省實現(xiàn).
要點如下:
Scala中類只能繼承一個超類, 可以擴展任意數(shù)量的特質(zhì)
特質(zhì)可以要求實現(xiàn)它們的類具備特定的字段, 方法和超類
與Java接口不同, Scala特質(zhì)可以提供方法和字段的實現(xiàn)
當將多個特質(zhì)疊加使用的時候, 順序很重要 ---- 排在后面的特質(zhì)方法先被執(zhí)行
1. Scala類沒有多繼承
把毫不相關的類組裝在一起, 多繼承沒有關系, 不過向下面這個簡單例子問題就浮出水面了;
class Student { val id: Int = 10 }class Teacher { val id: Int = 10 }
假設可以有:
class TeacherAssistant extends Student, Teacher { ... }