1. 要使用特质丰满接口,只要简单地定义一个具有少量抽象方法的特质——特质接口的瘦部分——和潜在的大量具体方法,所有的都实现在抽象方法之上。然后你就可以把丰满了的特质混入到类中,实现接口的瘦部分,并最终获得具有全部胖接口内容的类。
2. Ordered特质 trait
class Rational(n: Int, d: Int) extends Ordered[Rational] {
// ... def compare(that: Rational) = (this.numer * that.denom) - ( that.numer * this.denom)
}
3. trait 的super是动态绑定的
4. abstract override 只存在于特质