Java 如何检查子级是否调用了方法?
子类扩展父类。Java 如何检查子级是否调用了方法?,java,android,Java,Android,子类扩展父类。 父类有一些代码我不想在onCreate()中执行 我该怎么做 家长: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activi
父类有一些代码我不想在
onCreate()
中执行
我该怎么做
家长:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!child)
{
... more code ...
}
}
}
儿童:
public class SingleArticulo extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_articulo);
... other code ...
}
}
public class SingleArticulo extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_articulo);
... other code ...
}
@Override
protected void doMoreOnCreate() {
}
}
使用该模式
基类:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.doMoreOnCreate()
}
protected void doMoreOnCreate() {
... more code ...
}
}
儿童:
public class SingleArticulo extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_articulo);
... other code ...
}
}
public class SingleArticulo extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_articulo);
... other code ...
}
@Override
protected void doMoreOnCreate() {
}
}
就这样。当您重写该方法并且子对象执行该方法时,它将执行被重写的方法,而不是父对象的方法。@aquiros:注意那里的
super.onCreate()
。Android框架需要调用AppCompatActivity.onCreate()
,因此必须调用父类的方法。@dsh你说得对。我的错误。