java超类调用的效果

时间:2018-04-30 21:40:45

标签: java oop inheritance

我是Java的新手,我遇到了一些OOP问题,主要是继承,概念。

考虑这两个类:

public class Foo() {
    protected String rawData;
    public String getSomething(String rawData) {
        // ...
        this.rawData = rawData;
        prepareData();
        return rawData;
    }

    protected void prepareData() {
        // do something with class rawData
    }
}

public class Bar() extends Foo {
    @Override
    public String getSomething(String rawData) {
        // ...
        return super.rawData;
    }

    @Override
    protected void prepareData() {
        // do something with class rawData too
    }
}

调用Bar课程getSomething()方法会引导我拨打Foo班级prepareData()

2 个答案:

答案 0 :(得分:1)

仅当您的覆盖调用基本方法时。

除了基类构造函数之外,Java不会以静默方式为您调用方法。

答案 1 :(得分:0)

即使没有@Override,Java总是更深入。 如果你没有覆盖基本方法,它将运行它。

如果您在Bar中并且想要运行Foo方法,则可以在Bar中使用super.prepareData() - 当您想要运行super方法并向其添加内容时,将使用它。