Bom, depois de rever a aula algumas vezes e não entender com clareza o que estava de fato acontecendo, decidi colocar a mão na massa e tentar seguir minha própria logica na tentativa de fazer funcionar.
O resultado:
Classe funcionário
public class Funcionario {
private String nome;
private String cpf;
private double salario;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public double bonificacao(){
return this.salario * 0.05;
}
}
Classe gerente:
public class Gerente extends Funcionario {
public double bonificacao(){
return super.getSalario() * 0.1;
}
}
Classe do controle da bonificação:
public class ControleBonificacao {
private double soma;
public double controle(Funcionario funcionario) {
return this.soma += funcionario.bonificacao();
}
public double getSoma() {
return soma;
}
}
E por fim a classe dos testes:
public class Testes {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario();
Funcionario gerente = new Gerente();
ControleBonificacao controle = new ControleBonificacao();
funcionario.setSalario(1000);
System.out.println("Bonificação padrão do funcionario: 5% de R$" + funcionario.getSalario() + " = R$" + funcionario.bonificacao());
gerente.setSalario(1000);
System.out.println("Bonificação padrão do gerente: 10% de R$" + gerente.getSalario() + " = R$" + gerente.bonificacao());
controle.controle(funcionario);
controle.controle(gerente);
System.out.println("A soma de todas as bonificações é de R$" + controle.getSoma());
}
}
O que quero é a opinião de uma perspectiva diferente para saber se essa logica segue a mesa linha de raciocínio proposta, e, caso sim, se segue as "boas praticas".