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

Dúvida sobre Polimorfismo

Guilherme, falaremos mais a fundo sobre Polimorfismo no decorrer do curso? Estou perguntando isso pois não compreendi bem a sua definição no decorrer dessa aula ao dizer "colocar em uma variável do tipo base um objeto especializado se chama polimorfismo." Até vi no fórum que fizeram uma pergunta semelhante à minha e que o Guilherme Tadeu (Instrutor) recomendou dar uma olhada na seguinte apostila: https://www.caelum.com.br/download/caelum-csharp-dotnet-fn13.pdf Mesmo após ler sobre Polimorfismo lá, continuo sem entender muito bem.

2 respostas
solução!

Olá Luiz!

O que ele quis dizer é que neste caso ele criou uma variável do tipo Funcionario. Dentro dessa variável foi colocado um objeto do tipo Diretor e isso é possível devido ao polimorfismo, que permite que uma variável pode armazenar um objeto do seu próprio tipo ou do tipo de alguma das suas classes filhas.

Isso quer dizer que se tivermos as classes Diretor, Designer e Desenvolvedor e todas essas classes são filhas de Funcionario. Se eu criar a variável funcionario que é do tipo Funcionario. Poderia criar um objeto de qualquer uma das classes filhas:

Funcionario funcionario = new Desinger();
Funcionario funcionario = new Desenvolvedor();
Funcionario funcionario = new Diretor();

Esses são todos códigos válidos. Com o código Funcionario funcionario = new Desinger(); quer dizer que a variável funcionario que é do tipo Funcionario, mas também pode receber um objeto de qualquer classe derivada de Funcionario, neste caso, Designer.

No decorrer dos cursos será falado sobre isso, mas o que realmente quer dizer é que uma variável pode armazenar um objeto do seu próprio tipo ou do tipo de alguma das suas classes derivadas.

Espero ter ajudado, mas qualquer dúvida, estamos a disposição!

Bons estudos!

Ficou mais claro agora. Obrigado Fabiano!