Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Minha classe TesteGerente está usando o método bonificacao do Funcionario e não do reescrito no Gerente


public class Funcionario {

    private String nome;
    private String cpf;
    private double salario;






    public double getBonificacao() {
        return this.salario * 0.05;
    }
    // omitido...
    public void se

public class Gerente extends Funcionario {

private int senha;


public boolean Autentica(int senha) {
    if(this.senha == senha) {
        return true;
    } else {
        return false;
    }
}



public void setSenha(int senha) {
    this.senha = senha;
}

public double Bonificacao() {
    return super.getBonificacao() + super.getSalario();
}

}

// Teste 
public class TesteGerente {
    public static void main(String[] args) {
        Gerente g1 = new Gerente();

        g1.setNome("Marco Polo");
        g1.setCpf("123456");
        g1.setSalario(5000.00);

        System.out.println(g1.getNome());
        System.out.println(g1.getCpf());
        System.out.println(g1.getSalario());


        g1.setSenha(222);
        boolean autenticou = g1.Autentica(222);

        System.out.println(autenticou);

        System.out.println(g1.getBonificacao());

    }

}

Quando coloco para compilar no final sai apenas a bonificação do funcionario, quando na verdade era pra sair do gerente.

Marco Polo
123456
5000.0
true
250.0

não era para sair 250.0 e sim 525000

`

2 respostas
solução!

A classe gerente está sem o método getBonificacao(), ela tem o Bonificacao() mas daí não é sobrescrita. Muda o nome do método da classe funcionario de Bonificacao para getBonificacao

MANOO, ahahahha. nem vi isso. e olha que passei o olho varias vezes.ahahaha. MUITO OBRIGADO ahaha

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software