Meu código funcionou corretamente mesmo sem o uso de polimorfismo para definir as subclasses como funcionário.
Obs: também não precisei criar Registros específicos para cada subclasse Obs: o resultado no console bate com os resultados esperados dentro do meu código
package bytebank_herdado;
public class Registro {
private double soma;
public void registra(Funcionario f) {
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
public double getSoma() {
return this.soma;
}
}
public class TestaGerente {
public static void main(String[] args) {
Gerente marselo = new Gerente();
marselo.setSalario(4800.0);
Diretor ale = new Diretor();
ale.setSalario(5500.0);
Funcionario rau = new Funcionario();
rau.setSalario(2400.0);
Registro calculoBonificacoes = new Registro();
calculoBonificacoes.registra(rau);
calculoBonificacoes.registra(ale);
calculoBonificacoes.registra(marselo);
System.out.println(calculoBonificacoes.getSoma());
}
}
Classe de teste