1
resposta

Implementação dos conceitos de herança e classes e métodos abstratos

Boa tarde, vim compartilhar como eu fiz meu programa, espero que tenha ficado bom :)

public abstract class Funcionario {

    private String nome;
    private String cpf;
    private Double salario;

    public  abstract Double getBonificacao();
    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 void setSalario(Double salario) {
        this.salario = salario;
    }
    public Double getSalario() {
        return salario;
    }
}
public class Gerente extends Funcionario{
    private String senha;

    public boolean autentica(String senha) {

        return this.senha == senha;
    }

    public Double getBonificacao() {
        return getSalario();
    }
}
public class EditorVideo extends Funcionario {
    @Override
    public Double getBonificacao() {
        return getSalario() * 0.5;
    }
}
public class Design extends Funcionario {
    @Override
    public Double getBonificacao() {
        return 3000.00;
    }
}
public class ControleBonificação {

    private static double somaBonificacao;

    public void registraBonificacao(Funcionario f) {
                somaBonificacao += f.getBonificacao();
    }
    public double getSomaBonificacao() {
        return somaBonificacao;
    }
}
public static void main(String[] args) {
        Design desing = new Design();

        desing.setNome("Mikael");
        desing.setCpf("8764539822");
        desing.setSalario(2000.00);

        EditorVideo ed = new EditorVideo();
        ed.setNome("Ze");
        ed.setCpf("8764539822");
        ed.setSalario(4000.00);

        Gerente gerente1 = new Gerente();

        gerente1.setNome("Maria");
        gerente1.setCpf("8764539822");
        gerente1.setSalario(2000.00);
        gerente1.geraSenha("test");


        ControleBonificação cb = new ControleBonificação();

        cb.registraBonificacao(desing);
        cb.registraBonificacao(ed);
        cb.registraBonificacao(gerente1);

        //System.out.println(cb.getSomaBonificacao());
        System.out.println(desing.getBonificacao());
        System.out.println(gerente1.getBonificacao());
        System.out.println(ed.getBonificacao());
        System.out.println("--------");
        System.out.println(desing.getBonificacao() + gerente1.getBonificacao() + ed.getBonificacao());
    }

Resultado no terminal: 3000.0 2000.0 2000.0


7000.0

1 resposta

Oi Mikael!

Muito bom! Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.