1
resposta

DUVIDAS DE POLIMORFISMO - OBJETOS DO TIPO GENERICO COM CONSTRUTOR DO TIPO ESPECIFICO

Não entendi até agora o porque(vantagem) de criar um objeto com um tipo genérico instanciando um tipo mais especifico, exemplo:

        Funcionario ev = new EditorVideo();    

Se quando eu crio a herança, o meu filho já herda tanto os atributos quanto os métodos da mãe, porque fazer isso? Entendi que da pra fazer, mas não entendi o porque fazer! Não ficou claro na explicação para mim.

Ainda sobre POLIMORFISMO, entendi que eu posso ter métodos com o mesmo nome nas diferentes classes e o JAVA ira escolher qual acessar, de acordo com o tipo do meu objeto. No caso, o método getBonificacao, ele será escolhido na classe GERENTE quando o meu objeto for do tipo Gerente, mas neste caso, também vai acessar o método getBonificacao da classe Funcionário(2 x quando o objeto pertencer a uma classe com herança). Agora quando for um objeto do tipo Funcionario, ira acessar apenas o método getBonificacao da classe Funcionario. Se o POLIMORFISMO para aqui, acredito que entendi, agora o new ali em cima(Instanciando Tipo Funcionario + Construtor EditorVideo), ainda ficou a duvida.

1 resposta

Boa noite,

não estou acompanhando o curso, porém gosto de ver a comunidade e ajudar a galera quando posso.

No caso acredito que você entenderia melhor olhando para o mundo real, no caso descrito eu acredito que a ideia seja algo do tipo:

Funcionario editorVideo = new EditorVideo(); Funcionario gernte = new Gerente(); Funcionario atendente = new Atendente();

Para explicar melhor, seria bom vc imaginar a situação no mundo real, onde os objetos tem suas características comuns entre eles chamado do" estado", tipo:

cpf, idade, nome.

Eles podem ter "comportamentos" semelhantes, como:

andar, falar, resolver problemas

e podem ter "estados" e "comportamentos" específicos para cada objeto, como:

estados: quantidade de vídeos editados, quantidade de atendimentos realizados.

comportamentos: realizar edição de vídeo, atender cliente, gerenciar atendimentos realizado, gerenciar vídeos editados.

No caso acredito ser bom para organizar até as ideias na hora de elaborar código e gerencia melhor suas classes, pois assim você compartilha estados e comportamento, mas também pode especificar estados e comportamentos para cada objeto.