Polimorfismo

Disponível somente no TrabalhosFeitos
  • Páginas : 11 (2593 palavras )
  • Download(s) : 0
  • Publicado : 15 de novembro de 2011
Ler documento completo
Amostra do texto
Polimorfismo
Centro Federal de Educação Tecnológica Celso Suckow da Fonseca CEFET-RJ

Modelo 2011/2012 1

Polimorfismo
• Permite “programar no geral” em vez de “programar no específico”. • O polimorfismo permite escrever programas que processam objetos que compartilham a mesma superclasse como se todas fossem objetos da superclasse; isso pode simplificar a programação.

2

Exemplo
•Suponha que criamos um programa que simula o movimento de vários tipos de animais para um estudo biológico. As classes Peixe, Anfíbio e Pássaro representam os três tipos de animais sob investigação.
– Cada classe estende a superclasse Animal, que contém um método mover e mantém a localização atual de um animal como coordenadas x-y. Toda subclasse implementa o método mover. – Um programa mantém umarray Animal que contém referências a objetos das várias subclasses Animal. Para simular os movimentos dos animais, o programa envia a mesma mensagem a cada objeto uma vez por segundo — a saber, move.

3

Exemplo (continuação)
• Cada tipo específico de Animal responde a uma mensagem mover de uma maneira única:
– um Peixe poderia nadar um metro – um Sapo poderia pular um metro e meio – umPássaro poderia voar três metros.

• O programa emite a mesma mensagem (isto é, mover) para cada objeto animal, mas cada objeto sabe como modificar suas coordenadas x-y apropriadamente de acordo com seu tipo específico de movimento. • Contar com o fato de que cada objeto sabe como “agir corretamente” em resposta à mesma chamada de método é o conceito-chave do polimorfismo. • A mesma mensagemenviada a uma variedade de objetos tem “muitas formas” de resultados — daí o termo polimorfismo. 4

Extensibilidade
• Com o polimorfismo, podemos projetar e implementar sistemas que são facilmente extensíveis.
– Novas classes podem ser adicionadas com pouca ou nenhuma modificação a partes gerais do programa, contanto que as novas classes sejam parte da hierarquia de herança que o programa processagenericamente. – As únicas partes de um programa que devem ser alteradas para acomodar as novas classes são aquelas que exigem conhecimento direto das novas classes que adicionamos à hierarquia.

5

Interface
• Depois que uma classe implementa uma interface, todos os objetos dessa classe têm um relacionamento é um com o tipo de interface e temos a garantia de que todos os objetos da classefornecem a funcionalidade descrita pela interface. • Isso também é verdade para todas as subclasses dessa classe. • Interfaces são particularmente úteis para atribuir funcionalidades comuns a classes possivelmente nãorelacionadas.
– Permite que objetos de classes não relacionadas sejam processados polimorficamente — objetos de classes que implementam a mesma interface podem responder à todas aschamadas de método da interface.

6

Definição de métodos na Interface
• Uma interface descreve um conjunto de métodos que pode ser chamado em um objeto, mas não fornece implementações concretas para todos os métodos. • Você pode declarar classes que implementam (isto é, fornecem implementações concretas para os métodos de) uma ou mais interfaces. • Cada método de interface deve ser declaradoem todas as classes que implementam explicitamente a interface.

7

Exemplos de polimorfismo Quadriláteros
– Se a classe Retângulo for derivada da classe Quadrilátero, então um objeto Retângulo é uma versão mais específica de um Quadrilátero. – Qualquer operação realizada em um Quadrilátero também pode ser executada em um Retângulo. – Essas operações também podem ser realizadas em outrosQuadriláteros, como Quadrados, Paralelogramas e Trapezoides. – O polimorfismo ocorre quando um programa invoca um método por meio de uma variável da superclasse Quadrilátero, a versão correta de subclasse do método é chamada com base no tipo da referência armazenada na variável da superclasse.

8

Exemplos de polimorfismo Objetos espaciais em um videogame
– Um videogame que manipula objetos...
tracking img