我都搞不清上面想说什么了。重写一遍:
下面代码可以正常运行:
class a {
def m = List(1,2,3)
println("class a report " + m.mkString )
}
class b extends a {
override def m = List(4)
println("class b report " +m )
}
@main
def main(): Unit = {
println("Hello world!")
var obj = new a
var obj2 = new b
}
/×
Hello world!
class a report 123
class a report 4
class b report List(4)
×/
下面代码在b中修改了基类的m的类型, 导致出错:
scalac: Error: 'java.lang.String dotty.tools.dotc.reporting.Message.msg()'
java.lang.NoSuchMethodError: 'java.lang.String dotty.tools.dotc.reporting.Message.msg()'
class a {
def m = List(1,2,3)
println("class a report " + m.mkString ) // m的定义被修改成int没有mkString方法了。
}
class b extends a {
override def m = 4
println("class b report " +m )
}
@main
def main(): Unit = {
println("Hello world!")
var obj = new a
var obj2 = new b
}