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
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
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!!