Polimorfismo
Objetos – Parte 2
Técnicas de Programação
Prof. Iális Cavalcante
Engenharia da Computação
2011.1
Tópicos a serem trabalhados
Polimorfismo
Sobrecarga
Herança múltipla (interface e classes abstratas) Introdução
Mensagem: “Desenha!”
Objeto da classe
Quadrado
Objeto da classe
Circulo
Objeto da classe
Triangulo
Introdução
Objeto da classe
Quadrado
Mensagem:
“Desenha Quadrado!”
Mensagem:
“Desenha Quadrado
Preenchido!”
Mensagem:
“Desenha Quadrado
Preenchido e com Rotação de 30°!”
POLIMORFISMO
Polimorfismo
Projetar sistemas mais extensíveis.
No decorrer da hierarquia, modificar métodos:
◦ Alterando seu comportamento de acordo com o objetivo da classe;
◦ Mantendo a estrutura definida na hierarquia.
Mesma mensagem para diferentes objetos assume
“diferentes formas” de resultados.
Polimorfismo
Classificação de Polimorfismo
Polimorfismo
Universal
Paramétrico
Ad-Hoc
Inclusão
Sobrecarga
Coerção
Polimorfismo
Polimorfismo Paramétrico
◦ Java não oferece um mecanismo generalizado que implemente o polimorfismo paramétrico de tipos.
◦ Exemplo: tipo array pré-definido em Java.
◦ O tipo array possui um conjunto de funções características: int vetor [ ]; vetor = new int[11]; // cria um vetor com 11 elementos vetor.length( ); // número máximo de elementos armazenados vetor[int i]; // obtém a referência do i-ésimo elemento armazenado em vetor
◦ O tipo array é declarado através do símbolo [ ] , int funciona como parâmetro para a construção do array.
◦ Proposta de polimorfismo paramétrico de tipos em Java: Generics
(Genéricos).
Disponível na versão 1.5 do Java SDK.
Polimorfismo
Polimorfismo de Inclusão
◦ É o estilo de polimorfismo encontrado em todas as linguagens orientadas a objetos.
◦ Ele está relacionado com a existência da hierarquia de generalização/especialização e com o conceito de subtipo. ◦ Definição de Subtipo: Um tipo S é um subtipo de