【发布时间】:2019-12-19 03:42:13
【问题描述】:
我有以下代码sn-p,
trait DefaultValueInheritance {
def print(str: String = "abc")
}
class MyDefaultValueInheritance extends DefaultValueInheritance {
//Didn't provide default value in the sub class
override def print(str: String): Unit = {
println(str)
}
}
object MyDefaultValueInheritance {
def main(args: Array[String]): Unit = {
val a = new MyDefaultValueInheritance
a.print()
}
}
在 trait DefaultValueInheritance 中,我定义了一个方法 print,参数的默认值是:str。
在子类中,当我重写print方法时,我没有提供str参数的默认值,
我仍然可以调用a.print(),看起来默认值仍然有效,我不知道为什么,谢谢!
【问题讨论】:
标签: scala overriding default-arguments