Olá galera,
Durante a aula eu gosto de ir acompanhando e programando ao mesmo tempo para entender melhor, e fazer uns certos "aprimoramentos" no código. Na ultima aula de polimorfismo eu tive um certo problema na consulta de bonificação. Segue abaixo o código e o resultado dele:
public class TesteReferencias {
public static void main(String[] args) {
Gerente g1 = new Gerente();
g1.setNome("Roger");
g1.setSalario(5000);
Funcionario f1 = new Funcionario();
f1.setSalario(2000);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(g1);
controle.registra(f1);
System.out.println(controle.getSoma());
}
}
E o resultado:
Exibindo bonificação GERENTE:
Exibindo bonificação FUNCIONARIO:
Exibindo bonificação FUNCIONARIO:
5350.0
Percebi que isso foi devido a eu ter usado um método para consulta de bonificação da classe Funcionario ao invés de ter aplicado a o salário + 5% do salário, a fim de não ser necessário alterar mais de uma classe.
public class Gerente extends Funcionario {
private int senha;
public double getBonificacao() {
System.out.println("Exibindo bonificação GERENTE: ");
return super.getSalario() + (super.getBonificacao() /*+ (super.getSalario()*0.05*/);
}
O ponto é, minha linha de pensamento está correta? Existe algo como contornar essa falha seguindo essa minha linha de pensamento?
Obrigado aos que se dispuserem a ajudar. :D