Buscar

polimorfismo em c#

Prévia do material em texto

Polimorfismo em C#
Programar no geral ao invés de programar no específico
Permite escrever programas que processam objetos que compartilham a mesma classe base em uma hierarquia de classes, como se todas fossem objetos da classe base
Polimorfismo
Veja o diagrama
Exemplo de Polimorfismo
Ave
Animal
Macaco
Peixe
Programa de simulação de movimento de vários tipos de animais para um estudo biológico
 Três tipos de animais sob investigação:
 Peixe
 Macaco
 Ave
 Animal contém método mover
Exemplo de Polimorfismo
estendem a superclasse Animal
Polimorfismo – Classe Animal
Polimorfismo – Classe Peixe
Polimorfismo – Classe Macaco
Polimorfismo – Classe Ave
No programa principal criamos um vetor de referências a objetos dasvárias subclasses Animal simulando os movimentos
 Programa envia mensagem a cada objeto e cada tipo específico de Animal responde à mensagem de maneira diferente
 Peixe – nada 1 metro
 Macaco – pula 1 ½ metro
 Pássaro – voa 3 metros
Polimorfismo– Programa Principal
Polimorfismo– Programa Principal
Conceito chave de polimorfismo:
Cada objeto sabe fazer a coisa certa em resposta à mesma chamada de método!
Polimorfismo
Projeto e implementação de sistemas que são facilmente extensíveis 
 Novas classes podem ser adicionadas a partes gerais do programa com pouca ou nenhuma modificação
 O que é necessário alterar no programa quando uma nova classe é gerada?
Vantagens do Polimorfismo
Resposta:
 As partes do programa que exige conhecimento direto das novas classes adicionadas
Vantagens do Polimorfismo
Qual a diferença entre polimorfismo e herança?
Polimorfismo
Herança: objeto é instanciado e o método é chamado diretamente do objeto
Peixe p = new Peixe();
p.mover();
 Polimorfismo: o método a ser executado é decidido em tempo de execução
Animal vetor[] animais;
// animais são inicializados e instanciados
animais[i].mover();
Polimorfismo
Programadores tratam generalidades
Ambientes de execução tratam de especificidades
Programadores instruem objetos a se comportarem de maneira apropriada, sem nem mesmo conhecer seus tipos
Polimorfismo
Polimorfismo promove extensibilidade 
 O software que invoca comportamento polimórfico é independente dos tipos para os quais as mensagens são enviadas
 
Novos tipos de objetos que podem responder a chamadas de método existente podem ser incorporados sem exigir modificações no sistema básico
Polimorfismo
Para utilizar polimorfismo, os objetos devem executar as mesmas ações (métodos), mesmo que com comportamento diferente
Mais de Polimorfismo
OO oferece uma capacidade que exige que classes não relacionadas implementem um conjunto de métodos comuns?
 Em outras palavras:
 Há como forçar que a implementação de uma ação comum a classes de objetos diferentes sejam implementadas nessas classes?
 Ex: mover para Macaco, Pássaro e Peixe
Mais de Polimorfismo
Resposta: SIM! Interfaces
 Interfaces que definem e padronizam coisas, pessoas e sistemas podem interagir entre si
Uma interface contém apenas as assinaturas de métodos, propriedades, eventosou indexadores
A implementação de membros é feita na classe ou struct que implementa a interface, conforme o exemplo seguinte:
Interface
Construir uma biblioteca de classes para comunicação com banco de dados
Criamos uma interface para que todos as classes a implementem, assim todas terão os mesmos métodos
 
Interface - exemplo
Interface - exemplo
Interface – Classe para SqlServer
Interface – Classe para MySql

Continue navegando