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?