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...
}
在矩形他定義抽象功能,他與主構造一個VAL實現它在類Rectangle摘要功能。Scala的 - 在性狀
這是特質的特例嗎?這是預期的行爲?
此前他介紹說只有def可以覆蓋def's。但是在這種情況下,val實現了一個抽象函數,這真的很奇怪。
誰是'他'?這是一本書摘錄嗎? – paradigmatic
http://www.amazon.com/Programming-Scala-Comprehensive-Step---Step/dp/0981531644/ref=sr_1_1?ie=UTF8&qid=1347900072&sr=8-1&keywords=SCALA –
如果我是你, d遠離那本書。不僅是錯誤的(或者至少是誤導性的)關於能夠用'val'覆蓋'def's,作者也顯然對方法和函數之間的區別感到困惑。沒有函數,既不是抽象的也不是在上面的代碼片段中,只有方法。考慮到在Scala中方法和函數之間的區別是*基本*,這似乎是一個巨大的錯誤。 –