¡Hola Alumno, espero que estés bien!
En el caso que mencionas, al utilizar super.getSalario()
en el método getBonificacion()
de la clase Gerente, estás accediendo al método getSalario()
de la clase madre (Funcionario). Sin embargo, es importante tener en cuenta que el valor que se retorna será el correspondiente al objeto específico en el que se está invocando el método. En otras palabras, vea que el método de la clase madre trabaja con this.salario y la clase hija al llamar tal método accede al propio salario.
Es decir, si tienes un objeto de la clase Gerente y llamas al método getBonificacion()
, el super.getSalario()
dentro de ese método se referirá al salario del Gerente, no al salario del Funcionario.
Por ejemplo, si tienes el siguiente código:
Funcionario funcionario = new Funcionario();
System.out.println(funcionario.getSalario()); // Imprime 2000
Gerente gerente = new Gerente();
System.out.println(gerente.getBonificacion()); // Imprime 4000
En este caso, al llamar gerente.getBonificacion()
, se imprimirá 4000 porque el método getSalario()
de la clase Gerente (que es el que se invoca con super.getSalario()
) retorna el salario del Gerente, que es 4000.
Espero que esto aclare tu duda. Si tienes alguna otra pregunta, estaré encantado de ayudarte.
¡Espero haber ayudado y buenos estudios!