如何从子类调用重写的父类方法?

时间:2011-03-07 04:37:03

标签: java inheritance

如果我的子类具有从父类重写的方法,并且在非常特定的情况下我想使用原始方法,我该如何调用这些方法?

3 个答案:

答案 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