Polimorfismo em C#

Preview:

DESCRIPTION

Polimorfismo em C#. Polimorfismo. 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. Exemplo de Polimorfismo. - PowerPoint PPT Presentation

Citation preview

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

MacacoPeixe

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

Recommended