En el ejemplo del profesor, definió en la clase hija Gerente el método getBonificacion() usando la palabra reservada super, así
public double getBonificacion() {
return super.getSalario();
}Sin embargo, me pregunto, ¿esto es realmente necesario? Sí la clase Gerente hereda el comportamiento de la clase padre Funcionario, ¿No hereda también sus métodos públicos? Es decir, que la misma clase hija ya tiene un método getBonificacion() propia, por lo que debería funcionar también si se define de la forma
public double getBonificacion() {
return this.getSalario();
}usando this en lugar de super. Y de hecho, funciona. Supongo que en algunos casos usar super podría ser lo mejor ---como cuando uno quiere llamar al constructor de la clase padre---, pero en este ejercicio en específico, ¿es realmente necesario, recomendado o considerado buena práctica?