2
respostas

Funcionario F = new Gerente();, nao entendi pra que isso

Boa Noite Teachers, Nao consegui entender ainda o motivo de se criar um objeto com referencia de outro, ex: Funcionario F = new Gerente();, isto esta muito confuso, qual a vantagem ou utilidade disso ???

Aproveitado, Felicidades pelo seu Dia..........

Abraços

2 respostas

Oi Oscar, tudo bem?

Essa técnica se chama Polimorfismo, e é um dos grandes trunfos da orientação a objetos. Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas.

Dá uma olhada nessa apostila da Caelum, acredito que vai te ajudar a entender melhor esse conceito: https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/#polimorfismo

Abraço!

Fala Oscar, belezinha?

Cara, demorei um pouco para entender sobre polimorfismo...rs Mas segue meu entendimento: Entendo que o polimorfismo serve para você centralizar regra(s) geral(is) a um conjunto de objetos que por sua vez terão suas regras (comportamentos) especificas. O ganho disto é que no futuro a manutenção do código será pontual sem afetar o sistema ou ficar com o sentimento de ter alterado uma funcionalidade pela metade, no sistema. Ex.: Na empresa todos os funcionários precisam se autenticar para ter acesso (Cpf e Id), e além disto, a depender do nível de funcionário, teremos regras complementares especificas. O que eu faria: uma classe contendo todo o comportamento (Métodos) da regra geral e para cada nível de funcionário uma nova classe com as regras especificas do nível. O que eu ganho, se amanhã o chefe falar: Vamos alterar as regras gerais dos funcionários, eu só precisaria alterar uma classe (Classe Funcionário) para todos as outras classes também passarem pela nova alteração de regra. Mas se o chefe falasse: Meu, tem uma nova regra pra implementar, mas esta regra só atingi aos estagiários. Neste caso, só mexeria na classe estagiário e done!...rs

Espero ter ajudado, abraços.