【发布时间】:2017-10-07 22:07:34
【问题描述】:
我有一个像这样的基本活动,它有抽象方法 abc()
abstract class Base: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
Log.i("abc", "onCreate base")
abc()
}
abstract fun abc()
}
MainActiviy 扩展 Base
class MainActivity : Base() {
override fun abc() {
Log.i("abc", "method called from base")
}
@Inject
lateinit var mainPresenter: MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.i("abc", "onCreate")
App.appComponent.plus(MainModule(this)).inject(this)
button.setOnClickListener {
mainPresenter.performToast(editText.text.toString())
}
}
fun showToast(string: String) {
toast(string)
}
}
当我运行 MainActivity 时,日志只显示“onCreate”。这意味着未调用 Base 的 onCreate 。你能告诉我为什么不调用基本方法吗? 它看起来很傻,但我尝试并没有调用基地 相同的代码在 JAVA 中工作
【问题讨论】: