24
Polimorfismo em C#

Polimorfismo em C#

  • Upload
    takoda

  • View
    54

  • Download
    1

Embed Size (px)

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

Page 1: Polimorfismo em C#

Polimorfismo em C#

Page 2: 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

Page 3: Polimorfismo em C#

Veja o diagrama

Exemplo de Polimorfismo

Ave

Animal

MacacoPeixe

Page 4: Polimorfismo em C#

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

Page 5: Polimorfismo em C#

Polimorfismo – Classe Animal

Page 6: Polimorfismo em C#

Polimorfismo – Classe Peixe

Page 7: Polimorfismo em C#

Polimorfismo – Classe Macaco

Page 8: Polimorfismo em C#

Polimorfismo – Classe Ave

Page 9: Polimorfismo em C#

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

Page 10: Polimorfismo em C#

Polimorfismo– Programa Principal

Page 11: Polimorfismo em C#

Conceito chave de polimorfismo:

◦ Cada objeto sabe fazer a coisa certa em resposta à mesma chamada de método!

Polimorfismo

Page 12: Polimorfismo em C#

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

Page 13: Polimorfismo em C#

Resposta:◦ As partes do programa que exige conhecimento

direto das novas classes adicionadas

Vantagens do Polimorfismo

Page 14: Polimorfismo em C#

Qual a diferença entre polimorfismo e herança?

Polimorfismo

Page 15: Polimorfismo em C#

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

Page 16: Polimorfismo em C#

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

Page 17: Polimorfismo em C#

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

Page 18: Polimorfismo em C#

Para utilizar polimorfismo, os objetos devem executar as mesmas ações (métodos), mesmo que com comportamento diferente

Mais de Polimorfismo

Page 19: Polimorfismo em C#

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

Page 20: Polimorfismo em C#

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

Page 21: Polimorfismo em C#

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

Page 22: Polimorfismo em C#

Interface - exemplo

Page 23: Polimorfismo em C#

Interface – Classe para SqlServer

Page 24: Polimorfismo em C#

Interface – Classe para MySql