2014-11-04 74 views

回答

3

如果class A extends B[A],类A显示为型构造函数参数自身。这种再现没有什么特别之处,即它与class A extends B[C]没有什么不同。

例如,如果B为特征Ordered

class Person(val name: String, val age: Int) extends Ordered[Person] { 
    // in method `compare(that: A)` of Ordered, type `A` is replaced with `Person` 
    def compare(that: Person): Int = { 
    val i = this.name compare that.name 
    if (i != 0) i else this.age compare that.age 
    } 
} 
相关问题