2011-03-07 18 views

Respuesta

6

llamada súper

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; 
    } 
} 
+0

no debería el método foo() en la Clase A ser estático para que pueda llamarlo así: super.foo()? –

+3

@Eng ¡No! estático significa algo muy diferente. – corsiKa

6

Eso es lo que es para super. Si reemplaza método method, entonces es posible aplicar de esta manera:

protected void method() { 
    if (special_conditions()) { 
     super.method(); 
    } else { 
     // do your thing 
    } 
} 
2

general, usted puede utilizar la palabra clave super acceder a la función de la clase padre. por ejemplo: [? En Java, cómo yo llamo el método de una clase base del método de alteración temporal en una clase derivada]

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();  
    } 

} 

Tomado de http://download.oracle.com/javase/tutorial/java/IandI/super.html

Cuestiones relacionadas