Si tengo una subclase que tiene métodos que he anulado de la clase principal, y en situaciones muy específicas quiero usar los métodos originales, ¿cómo puedo llamar a esos métodos?¿Cómo puedo llamar a un método de clase padre anulado de una clase secundaria?
Respuesta
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;
}
}
no debería el método foo() en la Clase A ser estático para que pueda llamarlo así: super.foo()? –
@Eng ¡No! estático significa algo muy diferente. – corsiKa
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
}
}
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
- 1. Cómo selecciono una clase padre como clase secundaria
- 2. Llamar a un método de clase dentro de una clase
- 3. Java: ¿Puede una clase padre recuperar estáticamente el nombre de clase de una clase secundaria?
- 4. ¿Puede un método en una clase interna acceder a un método de clase padre?
- 5. PHP: Cómo llamar a la función de una clase secundaria de la clase principal
- 6. C#: ¿Cómo puedo llamar a un método estático de una clase base desde un método estático de una clase derivada?
- 7. Usando el constructor padre en una clase secundaria en Java
- 8. Llamar a un método anulado, superclase a llamadas reemplazadas método
- 9. ¿Cómo llamar a un método de una clase?
- 10. Llamar a un método de clase desde esa clase
- 11. llamar a un método estático dentro de una clase?
- 12. ¿Llamar a una función dentro de un método de clase?
- 13. Llamar a Métodos anulado en clase derivada de la clase Base
- 14. ¿Cómo obtener un valor dentro de la clase padre de la clase secundaria (en clases anidadas)?
- 15. Cómo llamar a un método principal desde la clase secundaria en javascript?
- 16. ¿Puedo forzar a una clase secundaria a usar el constructor padre?
- 17. Llamar a un constructor de la clase padre de un niño de clase en Python
- 18. Make DateTime :: createFromFormat() devuelve clase secundaria en lugar de padre
- 19. ¿Cómo puedo llamar a la 'implementación base' de un método virtual anulado?
- 20. ¿Puedo pasar a método de clase como y un argumento predeterminado a otro método de clase
- 21. ¿Cómo puedo llamar a las variables miembro de una clase dentro de un método estático?
- 22. AS3: llamar a un método de clase estática - los nombres de clase y método son cadenas
- 23. ¿Cómo anulo las funciones de una clase padre en python?
- 24. Forma de hacer que el método de clase padre Java devuelva el objeto de la clase secundaria
- 25. En javascript, ¿cómo puedo llamar a un método de clase desde otro método en la misma clase?
- 26. Cómo llamar a un destino MSBuild anulado
- 27. Como llamar a un método estático de otra clase
- 28. métodos PHP quedar anulado de clase hija
- 29. Llamar condicionalmente a un método básico anulado en C#
- 30. Java: ¿Cómo accedes a un método de clase padre dos niveles hacia abajo?
posible duplicado de (http://stackoverflow.com/questions/268929/in-java-how-to-call-a-base-classs-method-from-the-overriding-method-in-a-deri) –