Phư*_*yễn 19 inheritance scala
我在Java类中有多个构造函数.
public class A{
public A(){...}
public A(String param){...}
public A(String param, Object value}
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个继承自该类的Scala类
class B extends A{
super("abc")
}
Run Code Online (Sandbox Code Playgroud)
但是这种语法无效.斯卡拉抱怨说'.' expected but '(' found.
这样做的有效方法是什么?
Lan*_*dei 29
正如Moritz所说,你必须直接在类定义中提供构造函数args.此外,您可以使用辅助构造函数:
class B(a:String, b:String) extends A(a,b) {
def this(a:String) = this(a, "some default")
def this(num:Int) = this(num.toString)
}
Run Code Online (Sandbox Code Playgroud)
但你必须参考this
,super
是不可能的.
Mor*_*itz 27
您必须将构造函数参数附加到类定义,如下所示:
class B extends A("abc")
Run Code Online (Sandbox Code Playgroud)