1
resposta

Gostaria que Bonificação da Classe Gerente fosse a soma das bonificações de todos os Funcionários

Estou com dificuldades para que a Classe Gerente possa retornar a soma das bonificações de todos os Funcionários. Alguém consegue me ajudar?

//Gerente eh um Funcionario, Gerente herda da class Funcionario, assina o contrato Autenticavel, eh um Autenticavel public class Gerente extends Funcionario implements Autenticavel{

private AutenticacaoUtil autenticador;
ControleBonificacao controleBonificacao = new ControleBonificacao();


public Gerente() {
    this.autenticador = new AutenticacaoUtil();
}
@Override
public double getBonificacao() {
    System.out.println("Chamando o método de bonificacao do GERENTE");
    return super.getSalario();
}

@Override
public void setSenha(int senha) {
    this.autenticador.setSenha(senha);
}

@Override
public boolean autentica(int senha) {
    return this.autenticador.autentica(senha);
}

}

public class TesteReferencias {

public static void main(String[] args) {

    Gerente gerente = new Gerente();
    gerente.setNome("Marcos");
    gerente.setSalario(5000.0);

    EditorVideo editorVideo = new EditorVideo();
    editorVideo.setSalario(2500.0);

    Designer designer = new Designer();
    designer.setSalario(2000.0);

    ControleBonificacao controle = new ControleBonificacao();
    controle.registra(gerente);

// controle.registra(editorVideo); // controle.registra(designer);

    System.out.println(controle.getSoma());

}

}

1 resposta

Olá,

O Fato de o Gerente herdar de funcionario não quer dizer que ele conheça todos os funcionarios. Pelo seu codigo, eu acredito que só retorne o valor do gerente, porque não registrou os outros funcionários no seu controle. tipo:

public static void main(String[] args) {

    Gerente gerente = new Gerente();
    gerente.setNome("Marcos");
    gerente.setSalario(5000.0);

    EditorVideo editorVideo = new EditorVideo();
    editorVideo.setSalario(2500.0);

    Designer designer = new Designer();
    designer.setSalario(2000.0);

    ControleBonificacao controle = new ControleBonificacao();
    controle.registra(gerente);
    controle.registra(editorVideo);
    controle.registra(designer);

     System.out.println(controle.getSoma());