【发布时间】:2019-06-24 19:01:36
【问题描述】:
为什么不能将成员对象传递给超类构造函数?
这是有效的:
class Foo(private val whatever : Object = Object()) : BaseClass(whatever) {
fun someFunction() {
// Do something with "whatever"
println(whatever.toString())
}
}
但这不是:
class Foo() : BaseClass(whatever) {
private val whatever = Object()
fun someFunction() {
// Do something with "whatever"
println(whatever.toString())
}
}
在第二个例子中,成员whatever 不能传递给基类。这是有道理的,因为子类是在基类之后初始化的,此时 whatever 还不存在。但为什么第一个示例有效?
【问题讨论】:
标签: kotlin