Polimorfismo em JAVA
AgendaO que é Polimorfismo?ExemploExecuçãoTipos de PolimorfismoPolimorfismo UniversalPolimorfismo Universal por InclusãoPolimorfismo Ad-HocPolimorfismo Ad-Hoc CoerçãoBenefícios do Polimorfismo
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;
ANIMALClasse Animal {String nome;String cor;int peso; //..tipoComida() {}CachorroGatotipoComida() {System.out.println(“cachorro come osso”);}tipoComida() {System.out.println(“gato come rato”);}Exemplos
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
Qual seria a saida na tela?cachorro come ossogato come rato
Tipos de PolimorfismoUniversal		- Inclusão		- ParamétricoAd-Hoc		- Sobrecarga		- Coerção
   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
   É 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
Exemplo de Polimorfismo por Inclusão
  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
Exemplo de Polimorfismo Paramétrico
   É 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
   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
Exemplo Polimorfismo Ad-Hoc Sobrecarga
   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
Exemplo Polimorfismo Ad-Hoc Coerção
Benefícios do PolimorfismoClareza e manutenção de códigosAplicações flexíveis
Disciplina: Prog. Orientada a ObjetoProf.: Douglas Del FrariCurso: Redes de ComputadoresPeríodo: 2º FAFICAPablo EnricoJosé EmidioLevy RodriguesVandernilton PoderosoLeandro AmorimGustavo HenriqueAlunos

Polimorfismo java

  • 1.
  • 2.
    AgendaO que éPolimorfismo?ExemploExecuçãoTipos de PolimorfismoPolimorfismo UniversalPolimorfismo Universal por InclusãoPolimorfismo Ad-HocPolimorfismo Ad-Hoc CoerçãoBenefí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.
    ANIMALClasse Animal {Stringnome;String cor;int peso; //..tipoComida() {}CachorroGatotipoComida() {System.out.println(“cachorro come osso”);}tipoComida() {System.out.println(“gato come rato”);}Exemplos
  • 5.
    public class Polimorfismo{Publicstatic 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 asaida na tela?cachorro come ossogato come rato
  • 7.
    Tipos de PolimorfismoUniversal -Inclusão - ParamétricoAd-Hoc - Sobrecarga - Coerção
  • 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
  • 10.
  • 11.
    Aidé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
  • 12.
  • 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
  • 15.
  • 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
  • 17.
  • 18.
    Benefícios do PolimorfismoClarezae manutenção de códigosAplicações flexíveis
  • 19.
    Disciplina: Prog. Orientadaa ObjetoProf.: Douglas Del FrariCurso: Redes de ComputadoresPeríodo: 2º FAFICAPablo EnricoJosé EmidioLevy RodriguesVandernilton PoderosoLeandro AmorimGustavo HenriqueAlunos