O documento discute os conceitos de polimorfismo em Java, incluindo: 1) Polimorfismo permite que classes derivadas invoquem métodos com a mesma assinatura de forma diferente; 2) Existem diferentes tipos de polimorfismo como universal, ad-hoc e coerção; 3) Polimorfismo beneficia a clareza e manutenção de códigos e permite aplicações flexíveis.
2. Agenda O que é Polimorfismo? Exemplo Execução Tipos de Polimorfismo Polimorfismo Universal Polimorfismo Universal por Inclusão Polimorfismo Ad-Hoc Polimorfismo Ad-Hoc Coerção Benefícios do Polimorfismo
3. O que é Polimorfismo? Polimorfismo = “várias formas” ; Em linguagem de programação significa: pode haver várias formas de se fazer uma “certa coisa”; Polimorfismo é o princípio pelo qual duas ou mais classesderivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos;
4. ANIMAL Classe Animal { String nome; String cor; int peso; //.. tipoComida() { } Cachorro Gato tipoComida() { System.out.println(“cachorro come osso”); } tipoComida() { System.out.println(“gato come rato”); } Exemplos
5. public class Polimorfismo{ Public static void main (String args[]){ Animal bicho[]=new Animal[2] bicho[0]=new Cachorro(); bicho[1]=new Gato(); for(int i=0;<bicho.length;i++){ System.out.println(bicho[i].tipoComida()); } } } Execução
6. Qual seria a saida na tela? cachorro come osso gato come rato
8. Como o próprio nome diz, ele é universal, ou seja, ele pode ser aplicado em vários casos, logo não consegue saber quantas vezes será aplicado o polimorfismo. Trabalha potencialmente num conjunto infinito de tipos, de modo disciplinado. Polimorfismo Universal
9. É quando você tem um ponteiro para mãe e ele consegue apontar para um objeto da filha, já que esse polimorfismo é muito básico, é difícil você conseguir outras coisas sem ele, por isso boa parte das linguagens orientadas a objetos conhecidas implementam esse polimorfismo. Polimorfismo Universal por Inclusão
11. A idéia do polimorfismo universal paramétrico é ao definir um elemento(que pode ser uma classe, um método ou alguma outra estrutura da linguagem), a definição do tipo sozinha ela é incompleta, ela precisa parametrizar este tipo, ou seja, teoricamente não existiria o tipo sozinho, o que sim existe e o tipo de alguma coisa de alguma coisa, por exemplo, uma list não seria só do tipo list, e sim do tipo list de elefantes. Vale lembrar que este polimorfismo só foi implementado em Java a partir da versão 1.5. Polimorfismo Universal Paramétrico
13. É implementado quando queremos definir uma coisa específica, ou seja, este polimorfismo, diferente do universal, não pode ser usado em todo lugar, logo sabemos quantas vezes ele será aplicado. Polimorfismo Ad-Hoc
14. Permite que um “nome de função” seja utilizado mais de uma vez com diferentes assinaturas, ou seja, dois métodos com o mesmo nome, porém com tipos de parâmetros diferentes por quantidades ou por tipo. O compilador automaticamente chama a função “correta” que deve ser utilizada. Polimorfismo Ad-Hoc Sobrecarga
16. A idéia dele é que a linguagem é quem faz uma coerção de tipos e não o programador, ou seja, que esta não é feita voluntariamente pelo programador e sim pela linguagem. Exemplo: se o operador ( + ) é definido para somar dois números reais, e um número inteiro é passado como parâmetro então o inteiro é "coergido" para real. Polimorfismo Ad-Hoc Coerção
19. Disciplina: Prog. Orientada a Objeto Prof.: Douglas Del Frari Curso: Redes de Computadores Período: 2º FAFICA Pablo Enrico José Emidio Levy Rodrigues Vandernilton Poderoso Leandro Amorim Gustavo Henrique Alunos