小编use*_*254的帖子

父类中的Scala继承默认参数

我有一个抽象类,其参数的默认值.我不想在所有可能的实现的构造函数中重用默认值.

abstract class Place(val place: String = "World")
class Message(val message: String = "Hello", p: String) extends Place(p) {
    override def toString = s"$message $place"
}
Run Code Online (Sandbox Code Playgroud)

我想得到什么

new Message("Hi", "Universe") = "Hi Universe" // Ok
new Message("Hi") = "Hi World" // Doesn't work, second parameter is required
new Message() = "Hello World" // Doesn't work, second parameter is required
Run Code Online (Sandbox Code Playgroud)

我考虑使用省略第二个参数的辅助构造函数,但它没有帮助,因为你不能在主构造函数之外调用超级构造函数.

我想知道怎么做,或者为什么不可能.我不是在寻找一种解决方法,比如不使用继承.

inheritance scala default-parameters

8
推荐指数
1
解决办法
1544
查看次数

标签 统计

default-parameters ×1

inheritance ×1

scala ×1