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中方法和函数之间的区别是*基本*,这似乎是一个巨大的错误。 –