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

Duvida no codigo - uso do Polimorfismo

Estou com duvida se realmente foi aplicado o conceito de Polimorfismo, uma vez que o codigo esta:

public class TesteReferencias

Gerente g1 = new Gerente();

EditorVideo ev = new EditorVideo();

Designer d = new Designer();

quando na verdade, para aplicar o conceito de Polimorfismo e usar a classe mais generica, usei:

Funcionario g1 = new Gerente();

Funcionario ev = new EditorVideo();

Funcionario d = new Designer();

Por que nao foi feito usando a Class Funcionario? obg!

4 respostas

Boa noite, André! Como vai?

Sim, foi usado o conceito de polimorfismo no momento da invocação do método registra().

controle.registra(g1);
controle.registra(ev);
controle.registra(d);

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Fala Prof. Gabriel, peguei parcialmente a ideia. Afinal, nesse caso o que seria mais atraente?

usar Funcionario g1 = new Gerente();

ou

Gerente g1 = new Gerente();

Muito obrigado pela atenção!

solução!

Olá Andre, tudo bem?

Foi sim utilizado o conceito de polimorfismo, pois na invocação do método

registra()
é passado um
 Funcionario)
como parâmetro.

Veja:


public class TesteReferencias

Gerente g1 = new Gerente();

EditorVideo ev = new EditorVideo();

Designer d = new Designer();

controle.registra(g1);   //envia um gerente, que é um funcionario
controle.registra(ev);   //envia um editoVideo, que é um funcionario
controle.registra(d);    //envia um designer, que é um funcionario

public class ControleBonificacao {

    private double soma;

    public void registra(Funcionario f) { // recebe um  funcionario
        this.soma += f.getBonificacao();
    }

Grande abraço!

Boa tarde! Eu estou com a mesma dúvida do Andre em um ponto:

Em um vídeo foi declarado

Funcionario g1 = new Gerente();

e chamado o método "registra" que recebe um funcionário. Porém no próximo vídeo foi usado:

ContaCorrente cc = new ContaCorrente(111, 111);

e chamado o "transfere" que recebe uma Conta. Assim, minha dúvida é: por que no caso abaixo foi declarado como ContaCorrente e não Conta? Sendo que tanto declarando Conta ou ContaCorrente o resultado seria o mesmo? Qual a real diferença de ter usado a classe mais genérica ou a específica no caso?

Obrigada desde já