Scala中的语言特性是如何实现的(3) -- trait
我在Coursera上跟了一门叫做Functional Programming Principles in Scala的课程,是由Scala的作者Martin Odersky讲授的。其中第三周的作业中使用到了Scala的trait这个语言特性。
我以前熟知的语言都没有类似的特性(Ruby的mixin和Scala的trait很像,但是Ruby我不熟),所以这周的博客就分析一下这个语言特性是如何实现的。
trait
在讲trait的实现机制之前,先看一个使用trait的例子。
假设我们有以下几个类:
1 | abstract class Plant { |
植物家族有玫瑰和杂草。