我是Kotlin的初学者,以下示例代码来自网页。
我认为Application()是一个类,UIApp继承自Application()类。
但是在Android Studio 3.01中,Application()的提示显示为方法,你可以看到iamge,它让我感到困惑!
Android Studio 3.01中提示的图片
class UIApp : Application() {
companion object {
var instance: UIApp by NotNullSingleValueVar()
}
override fun onCreate() {
super.onCreate()
instance = this
}
class NotNullSingleValueVar<T> {
private var value: T? = null
operator fun getValue(thisRef: Any?, property: KProperty<*>): T =
value ?: throw IllegalStateException("${property.name} not initialized")
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
this.value = if (this.value == null) value
else throw IllegalStateException("${property.name} already initialized")
}
}
}
答案 0 :(得分:5)
类无法继承函数。
您继承了Application类,它只有一个构造函数,它是空构造函数
https://kotlinlang.org/docs/reference/classes.html#inheritance