style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Llamada a super

Una pregunta este codigo tiene un error en la asignacion de super de la clase padre a una variable de tipo entero.

no es posible hacer este tipo de asignaciones ????, solo aplica para metodos ????


public class SuperCalc{
protected static int multiply(int a, int b){
return a*b;
}
}

public class SubCalc extends SuperCalc {

protected static int multiply(int a, int b){
int c = super.multiply(a,b); // Aqui esta el error.
}

return c;
}

Invocacion:

SubCalc sc = new SubCalc();
System.out.println(sc.multiply(3,4));
System.out.println(SubCalc.multiply(2,2));

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Para empezar tu clase SubCalc

Para empezar tu clase SubCalc ni siquiera compila, tienes un return que esta fuera de tu método, y el error que mensionas es por que tus métodos son estáticos, y ahi no hay herencia, si no fueran estáticos la linea que te da el error pasaría sin problemas, ahora el problema seria al hacer el SubCalc.multiply(2,2) ya que no ya no existiría dicho método.

Imagen de ezamudio

no hay super

En métodos estáticos no hay super. Son métodos estáticos, no métodos de clase. Fue la primera cosa que me hizo darme de topes y querer aventar Java por la ventana, cuando lo empecé a usar, viniendo de Objective-C.

Imagen de CesarAlducin

OK

Buen detalle, Gracias por las observaciones !!!!

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">