Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查子级是否调用了方法?_Java_Android - Fatal编程技术网

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你说得对。我的错误。