Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A repeito de Polimorfismo

Porque um Editor de Vídeos não pode ser um Gerente? Já que Gerente herda de Funcionário e Editor de Vídeos herda de Funcionário.

EditorVideo g1 = new Gerente();

Dá essa mensagem: Type mismatch: cannot convert from Gerente to EditorVideo

1 resposta
solução!

Oi Rogério, tudo bem?

Se tratando de herança, podemos substituir a frase "Gerente herda de Funcionario" por "Gerente é um Funcionario". Quando usamos herança, fazemos com que um classe filha herde os métodos e atributos da classe mãe, podemos até mesmo fazer aquela tal de sobrescrita que altera o comportamento dos métodos herdados, ajustando eles para que fiquem de acordo com as peculiaridades de cada classe filha.

Voltando ao Gerente e ao Editor de Vídeos, ambos são Funcionarios, porém cada um tem suas peculiaridades, ou seja, eles podem possuir os mesmos atributos e métodos de um Funcionario, porém suas semelhanças acabam por aí. Um Gerente é um Funcionario + métodos atribuídos ao Gerente e um Editor de Vídeos é um Funcionario + métodos atribuídos ao EditorVideo, ambos são irmãos, e da mesma forma que você não pode herdar características do seu irmão mas pode herdar da sua mãe, o mesmo ocorre se tratando de classes.

Na dúvida, sempre tente se perguntar antes:

Gerente é um Funcionario? Sim? Então pode chamar o Gerente de Funcionario!

Agora, Gerente é um Editor de Vídeos? Opa, os dois são Funcionarios, mas um Gerente não pode ser um Editor de Vídeos, cada um tem sua função na empresa (seus próprios métodos), portanto o Gerente não é um Editor de Vídeos!

Espero ter feito sentido, esse tipo de coisa você vai pegando o jeito com o tempo e muita prática. Mas se ficou qualquer dúvida é só avisar!

Bons estudos!!