Если у меня есть подкласс, в котором есть методы, которые я переопределил из родительского класса, и в очень специфических ситуациях я хочу использовать оригинальные методы, как мне вызвать эти методы?
Вот для чего super. Если вы переопределите метод method, вы можете реализовать его следующим образом:
super
method
protected void method() { if (special_conditions()) { super.method(); } else { // do your thing } }
звонок супер
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; } }
Обычно вы можете использовать ключевое слово 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