3
respostas

Preciso de ajuda. Nao consigo gerar a bonificação na classe filho

Boa tarde, quando peço para gerar a bonificação na classe gerente "Classe filho" só me retorna 0.0. Não sei como resolver.

public class Funcionario {
    private String nome;
    protected double salario;

    public String getNome() {
        return this.nome;
    }
    public double getSalario() {
        return this.salario;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }

}
Fim Classe Funcionario
public class Gerente extends Funcionario {
    private double bonificacao;

    public double getBonificacao() {
        return this.bonificacao;
    }
    public void setBonificacao() {
        super.salario = salario + 1;
    }

}
Fim classe Gerente
public class Programa {
    public static void main(String[] args) {
        Funcionario f = new Funcionario();
        f.setSalario(500.0);
        f.setNome("Fernando");
        System.out.println(f.getSalario());
        System.out.println(f.getNome());

        Gerente g = new Gerente();

        g.setSalario(600.0);
        System.out.println(g.getSalario());
        System.out.println(g.getBonificacao());

    }
}

Alguém pode me ajudar com a solução? Desde já agradeço. Fernando

3 respostas

Fala Fernando, de boa ?

Cara tu fez tudo certinho, só esqueceu de chamar o método setBonificacao do gerente...

Oi Amigo,

Você definiu o salário do gerente e em seguida tentou ver a bonificação dele, mas o problema ocorre porque a variavel "bonificacao" não tinha nenhum valor quando você tentou imprimir no console. Para resolver o problema você precisa antes chamar o metodo responsável por definir o valor da variavel "bonificação", e neste seu exemplo esse método é o setBonificacao(). Veja no seguinte exemplo:

public class Programa {
    public static void main(String[] args) {
        Funcionario f = new Funcionario();
        f.setSalario(500.0);
        f.setNome("Fernando");
        System.out.println(f.getSalario());
        System.out.println(f.getNome());

        Gerente g = new Gerente();

        g.setSalario(600.0);
        g.setBonificacao(); //  super.salario = salario + 1
        System.out.println(g.getSalario());
        System.out.println(g.getBonificacao());

    }
}

Espero ter ajudado.

Obrigado, deu certo.

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