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

Pau*_*aul 7 java inheritance

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

cor*_*iKa 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;
   }
}
Run Code Online (Sandbox Code Playgroud)

  • @Eng Nope!static意味着非常不同的东西. (3认同)

Ted*_*opp 6

super是为了什么.如果重写方法method,那么您可以像这样实现它:

protected void method() {
    if (special_conditions()) {
        super.method();
    } else {
        // do your thing
    }
}
Run Code Online (Sandbox Code Playgroud)