【发布时间】:2014-01-08 21:13:53
【问题描述】:
考虑下面的java代码:
public class Superclass {
public void printMethod() {
System.out.println("Printed in Superclass.");
}
}
这是一个子类,称为 Subclass,它覆盖了 printMethod():
public class Subclass extends Superclass {
// overrides printMethod in Superclass
public void printMethod() {
super.printMethod();
System.out.println("Printed in Subclass");
}
public static void main(String[] args) {
Subclass s = new Subclass();
s.printMethod();
}
}
得到的输出如下:
Printed in Superclass
Printed in Subclass
如果子类被覆盖,为什么超类println 仍然显示在屏幕上?
不只是在子类上显示方法的内容吗?
如果方法被覆盖,为什么在下面的代码中不调用 super?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
【问题讨论】:
-
你认为
super.printMethod();会做什么?
标签: java