我有这个班级
open class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_base)
}
}
是这个
的超类class MainActivity : BaseActivity() {
protected fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
并收到错误:意外覆盖声明: protected open onCreate() protected final onCreate()
答案 0 :(得分:2)
您必须使用override
关键字明确标记函数以覆盖它们(如文档here中所述):
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
如果省略此关键字,编译器会认为您不小心将某个函数命名为与基类中的另一个函数相同,因此会出现关于“意外覆盖”的警告。
您也可以删除protected
关键字,因为此方法已经具有AppCompatActivity
基类中声明的可见性。