trait Rectangular{
def topLeft:Point
def bottomRight:Point
def left=topLeft.x
def right=bottomRight.x
def width=right-left
//andmanymoregeometricmethods...
}
class Rectangle(val topLeft:Point,val bottomRight:Point)
extends Rectangular{
//othermethods...
}
在 Rectangular 中,他定义了一个抽象函数,并在 Rectangle 类中实现它,并在主构造函数中使用 val。
这是特质的特例吗?这是预期的行为吗?
之前他描述了只有 def's 可以覆盖 def's。但是在这种情况下,一个 val 实现了一个抽象函数,这真的很奇怪。