Как вызвать переопределенный метод родительского класса из дочернего класса? - PullRequest
7 голосов
/ 07 марта 2011

Если у меня есть подкласс, в котором есть методы, которые я переопределил из родительского класса, и в очень специфических ситуациях я хочу использовать оригинальные методы, как мне вызвать эти методы?

Ответы [ 3 ]

6 голосов
/ 07 марта 2011

Вот для чего super. Если вы переопределите метод method, вы можете реализовать его следующим образом:

protected void method() {
    if (special_conditions()) {
        super.method();
    } else {
        // do your thing
    }
}
6 голосов
/ 07 марта 2011

звонок супер

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;
   }
}
2 голосов
/ 07 марта 2011

Обычно вы можете использовать ключевое слово 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...