Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Erro na Bonificação para o Gerente

Durante a aula o professor disse que o método getBonificacao() apresentava um erro que iria deixar para resolver mais pra frente, em outra aula. Mas acho que resolvi.

"Ainda assim, nosso método getBonificacao() apresenta um erro. Resolveremos isso, mas, por enquanto, vamos apenas deixá-lo em comentários:"

//Gerente é um Funcionário, Gerente herda da classe Funcionário
public class Gerente extends Funcionario {

    private int senha;

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

//    public double getBonificacao() {
//        return this.salario;
//    }
}

A minha solução foi na classe Gerente criar um método getBonificacao() que tenha como retorno o this.getSalario da classe Funcionario somado à bonificacao:

public Double getBonificacao() {
        return this.getSalario() + 2000;
    }

E na classe TestaGerente, para imprimir passei como argumento o método getBonificacao tendo como referência o objeto instanciado de nome gerente:

public class TesteGerente {

    public static void main(String[] args) {

        Gerente gerente = new Gerente();
        gerente.setNome("Hugo Henrique");
        gerente.setCpf("000111222-33");
        gerente.setSalario(5000.0);

        gerente.setSenha(12345);
        System.out.println(gerente.getNome());
        System.out.println(gerente.getCpf());
        System.out.println(gerente.getSalario());

        gerente.setSenha(123);

        boolean autenticou = gerente.autentica(123);
        System.out.println(autenticou);

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

    }

}

E deu certo! uhuuuuu kkkkkk

Mas será que é do jeito certo mesmo? Alguém me diz por favor.

Grato.

2 respostas
solução!

Oi Hugo

Sua solução está correta sim, a única diferença é que ao invés do "this" o professor usou o "super" para deixar explícito que é da superclasse o método getSalario().

https://cursos.alura.com.br/course/java-heranca-interfaces-polimorfismo/task/35078

Obrigado Otávio!

Vi a aula aqui e como ele fez. Show! Valeu.

Abraço.