我是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()
?
答案 0 :(得分:1)
仅当您的覆盖调用基本方法时。
除了基类构造函数之外,Java不会以静默方式为您调用方法。
答案 1 :(得分:0)
即使没有@Override
,Java总是更深入。
如果你没有覆盖基本方法,它将运行它。
如果您在Bar中并且想要运行Foo方法,则可以在Bar中使用super.prepareData()
- 当您想要运行super方法并向其添加内容时,将使用它。