1
resposta

Para quem estiver com duvida isso pode ajudar


public class TestaReferencias {

    public static void main(String[] args) {

        System.out.println("Aplicando o polimorfismo de maneira eficiente");
        Funcionario funcionario = new Funcionario(); //Atribuindo a referência do objeto Funcionario criado a uma variável do tipo Funcionario
        funcionario.setSalario(2000);

        Gerente gerente = new Gerente(); //Atribuindo a referência do objeto Gerente criado a uma variável do tipo Gerente
        gerente.setSalario(5000);

        EditorDeVideo editorDeVideo = new EditorDeVideo(); //Atribuindo a referência do objeto EditorDeVideo a uma variável do tipo EditorDeVideo
        editorDeVideo.setSalario(3000);

        ControleDeBonificacao controleDeBonificacao = new ControleDeBonificacao();
        controleDeBonificacao.calcular(funcionario);
        controleDeBonificacao.calcular(gerente);
        controleDeBonificacao.calcular(editorDeVideo);
        System.out.println("Total de bonificações: " + ControleDeBonificacao.getSomaDeBonificacoes());
    }
}

Classe ControleDeBonificacao


public class ControleDeBonificacao {

    private static int somaDeBonificacoes;

    public static int getSomaDeBonificacoes() {
        return ControleDeBonificacao.somaDeBonificacoes;
    }

    /*Explicando:
     * O parâmetro que estou recebendo é uma variável que carrega a referência que pode ser para um objeto do tipo Funcionario
     * Entretanto, qualquer referência para um objeto que herda de Funcionario poderá ser passado para este método
     * Seja uma referência para um objeto do tipo: Gerente, EditorDeVideo, Funcionario 
     * Isso acontece porque todo Gerente, EditorDeVideo é oriundo de Funcionario
     * Mas nem todo Gerente é oriundo de EditorDeViode ou vice versa
     * por isso, passamos a referência mais genérica possível para o método*/
    public void calcular(Funcionario funcionario) {
        System.out.println("Sua bonificação é de: " + funcionario.getBonificacao());
        ControleDeBonificacao.somaDeBonificacoes += funcionario.getBonificacao();
    }
}
1 resposta

Olá Thiago! Tudo bem?

É muito legal ter essa iniciativa de compartilhar aqui no fórum a sua solução para que outros possam aprender com ela!

E não apenas isso, mas também fez anotações que ajudam os colegas que estão aprendendo o mesmo assunto, e isso é melhor ainda! Desse jeito você absorve ainda mais o que está aprendendo pois coloca em suas palavras a explicação a respeito do código que estamos usando.

Quando compartilhamos essas soluções aqui, no fórum, temos a chance de enriquecer o nosso conhecimento e também o dos colegas que estão estudando os mesmos desafios e podem não ter encontrado essa forma de solucionar.

Conte conosco sempre que precisar de ajuda... estamos aqui com muitos outros colegas do fórum e vamos ajudar! 😄

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!