14
为什么可以用object
覆盖空括号方法?用对象覆盖方法
trait A {
def meth = {}
def meth_p() = {}
}
class B extends A {
object meth_p
} // compiles
压倒一切的不带括号的方法不编译:
class B1 extends A {
object meth
} // does not compile
无论做任何下列组合工作的(不含override
修改):
class BX extends A {
// of course, each declaration should get its own class
def meth = {}
def meth_p() = {}
def meth() = {}
def meth_p = {}
val meth = {}
val meth_p = {}
// ...
}
这是记载和有用的行为?由于意外覆盖,我遇到了一个非常微妙的错误。
是的,这看起来更像是一个错误。 – Debilski
https://issues.scala-lang.org/browse/SI-5429 – soc