读程序,写出程序运行结果:
class Base {
public void fn() {
System.out.println(Base fn);
}
}
public class SubClass extends Base {
public void fn() {
System.out.print(SubClass fn);
}
public static void main(String[] args) {
new SubClass().fn();
}
}
参考答案:
SubClass fn
SubClass重写了父类Base的方法fn(),当子类SubClass调用fn()时是走的子类的fn()方法,将不再执行父类Base的fn()。
如果想要子类调用fn()时,父类的fn()方法也执行,需要在子类重写的fn()中使用super调用fn()即可,如下:
public class SubClass extends Base {
public void fn() {
super.fn();
System.out.print(SubClass fn);
}
}