En Java, ¿cómo invoco el método de una clase base desde el método de anulación en una clase derivada?

Tengo dos clases de Java: B, que se extiende a otra clase A, de la siguiente manera:

class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } 

Me gustaría llamar al A.myMethod() de B.myMethod() . Vengo del mundo C ++ , y no sé cómo hacer esto básico en Java.

La palabra clave que estás buscando es super . Ver esta guía , por ejemplo.

Solo llámalo usando super.

 public void myMethod() { // B stuff super.myMethod(); // B stuff } 

La respuesta es la siguiente:

 super.Mymethod(); super(); // calls base class Superclass constructor. super(parameter list); // calls base class parameterized constructor. super.method(); // calls base class method. 

super.MyMethod() debe llamarse dentro de MyMethod() de la class B Entonces debería ser de la siguiente manera

 class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { super.MyMethod(); /* Another code */ } } 

Estoy bastante seguro de que puedes hacerlo utilizando el mecanismo de reflexión de Java. No es tan sencillo como usar super pero te da más poder.

 class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { super.myMethod(); // calling parent method } } 

llamar a super.myMethod ();

Use la palabra clave super

 super.baseMethod(params); 

llama a los métodos base con la palabra clave super y pasa los params respectivos.

Vea, aquí está anulando uno de los métodos de la clase base, por lo tanto, si desea invocar el método de clase base de la clase heredada, debe usar la palabra clave super en el mismo método de la clase heredada.

 class test { void message() { System.out.println("super class"); } } class demo extends test { int z; demo(int y) { super.message(); z=y; System.out.println("re:"+z); } } class free{ public static void main(String ar[]){ demo d=new demo(6); } } 

Si utiliza estos métodos para la inicialización, utilice constructores de clase A y pase la palabra clave super dentro del constructor de clase B.

O si desea llamar a un método de superclase desde el método de la subclase, debe usar la palabra clave super dentro del método de la subclase como: super.myMethod ();

 // Using super keyword access parent class variable class test { int is,xs; test(int i,int x) { is=i; xs=x; System.out.println("super class:"); } } class demo extends test { int z; demo(int i,int x,int y) { super(i,x); z=y; System.out.println("re:"+is); System.out.println("re:"+xs); System.out.println("re:"+z); } } class free{ public static void main(String ar[]){ demo d=new demo(4,5,6); } }