我不明白何时创建构造函数,有时候我必须写这个
constructor(...):super(){}
您有一个要理解的例子吗?
答案 0 :(得分:0)
考虑类Bar
:
open class Foo(val i: Int)
class Bar: Foo {
constructor(i: Int): super(i)
}
由于它没有主构造函数,因此辅助构造函数需要调用其派生类(即Foo
)的构造函数。
如果该类没有主要构造函数,则每个次要构造函数 构造函数必须使用super关键字初始化基本类型, 或委派给另一个这样做的构造函数。 (Source)
在这种特殊情况下,使用主构造函数将是更好的方法:
class Bar(i: Int): Foo(i)
如果派生类具有主构造函数,则基类可以 (并且必须)使用的参数在此处初始化 主要构造函数。 (Source)