【发布时间】:2012-03-07 00:39:42
【问题描述】:
在 Scala 中,可以在构造函数中定义类属性。但是一旦在那里声明它们,就不能再改变行为(getter 和 setter),就像在类主体中声明时那样?
例子:
class MyExample(var attribute : String)
{
def attribute() //trying to override getter <- doesn't work
}
class MyExample(theAttribute : String)
{
def attribute = theAttribute //overriding default accessor (was var)
}
如果不可能,为什么会这样?当您向人们展示他们可以通过在构造函数中设置 var 或 val 轻松创建属性,而不关心 getter 和 setter(如果需要时可以更改),最终发现实际上应该避免使用这些,这似乎令人困惑一种便利。
【问题讨论】:
标签: class scala constructor attributes