Kotlin 在这种情况下,我必须在创建构造函数时设置super()?
我不明白当我创建一个构造函数时,有时我不得不写这个Kotlin 在这种情况下,我必须在创建构造函数时设置super()?,kotlin,super,Kotlin,Super,我不明白当我创建一个构造函数时,有时我不得不写这个 constructor(...):super(){} 你有一个例子需要理解吗 考虑类条: open class Foo(val i: Int) class Bar: Foo { constructor(i: Int): super(i) } 因为它没有主构造函数,所以次构造函数需要调用它派生的类的构造函数(即Foo) 如果类没有主构造函数,则每个次构造函数 构造函数必须使用super关键字初始化基类型, 或者委托给另一个这样做的构
constructor(...):super(){}
你有一个例子需要理解吗 考虑类
条:
open class Foo(val i: Int)
class Bar: Foo {
constructor(i: Int): super(i)
}
因为它没有主构造函数,所以次构造函数需要调用它派生的类的构造函数(即Foo
)
如果类没有主构造函数,则每个次构造函数
构造函数必须使用super关键字初始化基类型,
或者委托给另一个这样做的构造函数。()
在这种特殊情况下,使用主构造函数将是更好的方法:
class Bar(i: Int): Foo(i)
如果派生类具有主构造函数,则基类可以
(并且必须)使用
主构造函数。()
这是因为类有一个带构造函数的超类型。但您可能想研究具有init块的主构造函数,而不是次构造函数。这种情况下,应该调用父类构造函数,所以父类具有必须调用的构造函数。