2010-06-09 3 views
5

Quando si esegue l'override di un metodo in Java è possibile chiamare quello "originale". Per esempio:Sovrascrittura "parziale" Java

public class A extends B{ 

    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    // Then execute foo() as it's defined in B 
    } 

} 

risposta

12
public class A extends B{ 

    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    super.foo(); // calls the method implemented in B 
    } 
} 
+0

Il segno di spunta va alla pistola veloce. Per qualche ragione avevo frainteso l'uso di super – Jla

+1

@DrDro: potreste non averlo frainteso, perché questo non è l'unico uso di 'super'. –

1

È possibile chiamare

super.foo(); 
2

Siete alla ricerca di super.foo().

3

L'uso del Keywork super è significato per questo

super.foo(); 
1

Prova questo:

super.foo() 
7

Basta chiamare super.methodName() di chiamare la versione del supertipo del metodo.

public class A extends B{ 
    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    super.foo(); // Here you call the supertype's foo() 
    } 
} 

Inoltre, questo non è "parzialmente" annullando il metodo. Lo stai completamente ignorando, ma stai solo utilizzando alcune delle funzionalità del genitore.