如果我的子类具有从父类重写的方法,并且在非常特定的情况下我想使用原始方法,我该如何调用这些方法?
答案 0 :(得分:6)
致电超级
class A {
int foo () { return 2; }
}
class B extends A {
boolean someCondition;
public B(boolean b) { someCondition = b; }
int foo () {
if(someCondition) return super.foo();
return 3;
}
}
答案 1 :(得分:6)
这就是super
的用途。如果您覆盖方法method
,那么您可以像这样实现它:
protected void method() {
if (special_conditions()) {
super.method();
} else {
// do your thing
}
}
答案 2 :(得分:2)
您通常可以使用关键字super
来访问父类的功能。
例如:
public class Subclass extends Superclass {
public void printMethod() { //overrides printMethod in Superclass
super.printMethod();
System.out.println("Printed in Subclass");
}
public static void main(String[] args) {
Subclass s = new Subclass();
s.printMethod();
}
}
取自http://download.oracle.com/javase/tutorial/java/IandI/super.html