kau*_*edi 9 java android overriding
我对人们在重写方法中使用super的方式感到困惑.喜欢什么是不同的
@Override
protected void onResume() {
// some logic here
super.onResume();
}
Run Code Online (Sandbox Code Playgroud)
和
@Override
protected void onResume() {
super.onResume();
// some logic here
}
Run Code Online (Sandbox Code Playgroud)
当我们在最后调用super()时它是否执行任何预处理,因为通常我们调用super来初始化父构造函数.
两种性能的差异.
Jon*_*eet 19
首先,方法super()根本不允许使用plain - 仅在构造函数中.我假设你实际上是为了一个合适的方法.super.someMethod()
当我们在最后调用super()时它是否执行任何预处理,因为通常我们调用super来初始化父构造函数.
使用super的方法是在构造函数中使用它有所不同.
在构造函数中,super(或this)必须是第一个语句(如果存在,super()否则隐式)并且它只能调用构造函数.
在一个方法中,使用super.someMethod()简单地调用超类的实现someMethod.你可以从任何方法调用它(你someMethod当时不必覆盖),你可以在方法的任何一点调用它.它在你调用它的时候被调用,它只是避免了对覆盖实现的多态调用.
所以基本上在哪里 - 以及是否 - 你称它取决于你想要的效果.在某些情况下,您可能希望在自己的自定义行为之前调用相同方法的超类实现,在某些情况下,您可能希望在自己的自定义行为之后调用它.
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |