SlideShare una empresa de Scribd logo
1 de 19
Polimorfismo em JAVA
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
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;
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
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 osso gato come rato
Tipos de Polimorfismo Universal 		- Inclusão 		- Paramétrico Ad-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 Polimorfismo Clareza e manutenção de códigos Aplicações flexíveis
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

Más contenido relacionado

La actualidad más candente

Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: AdapterMessias Batista
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratasPedro Neto
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetosRafael Pinheiro
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAAparicio Junior
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaVictor Hazin da Rocha
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgeLorran Pegoretti
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoCaveiras
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 

La actualidad más candente (20)

Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: Adapter
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratas
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e Bridge
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 

Destacado

Polimorfismo en JAVA
Polimorfismo en JAVAPolimorfismo en JAVA
Polimorfismo en JAVAByron David
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Polimorfismos Geneticos
Polimorfismos GeneticosPolimorfismos Geneticos
Polimorfismos Geneticosmauroberta
 
Java one
Java oneJava one
Java oneIsmael
 
Introduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosIntroduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosAlexys González
 
Curso Java #05 - Heranca, Polimorfismo e Classe abstratas
Curso Java #05 - Heranca, Polimorfismo e Classe abstratasCurso Java #05 - Heranca, Polimorfismo e Classe abstratas
Curso Java #05 - Heranca, Polimorfismo e Classe abstratasRenato Sousa
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java hack-13
 
Unidad08 geneticadepoblaciones
Unidad08 geneticadepoblacionesUnidad08 geneticadepoblaciones
Unidad08 geneticadepoblacionesalan_23
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)Marcello Thiry
 

Destacado (20)

Polimorfismo en JAVA
Polimorfismo en JAVAPolimorfismo en JAVA
Polimorfismo en JAVA
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Polimorfismo final
Polimorfismo finalPolimorfismo final
Polimorfismo final
 
Polimorfismos Geneticos
Polimorfismos GeneticosPolimorfismos Geneticos
Polimorfismos Geneticos
 
Programacion oo
Programacion ooProgramacion oo
Programacion oo
 
Java one
Java oneJava one
Java one
 
Introduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosIntroduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a Objetos
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
 
Interfaces e polimorfismo
Interfaces e polimorfismoInterfaces e polimorfismo
Interfaces e polimorfismo
 
Erros comuns em java
Erros comuns em javaErros comuns em java
Erros comuns em java
 
Curso Java #05 - Heranca, Polimorfismo e Classe abstratas
Curso Java #05 - Heranca, Polimorfismo e Classe abstratasCurso Java #05 - Heranca, Polimorfismo e Classe abstratas
Curso Java #05 - Heranca, Polimorfismo e Classe abstratas
 
POO Herança
POO HerançaPOO Herança
POO Herança
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java
 
Curso de JSP
Curso de JSPCurso de JSP
Curso de JSP
 
Unidad08 geneticadepoblaciones
Unidad08 geneticadepoblacionesUnidad08 geneticadepoblaciones
Unidad08 geneticadepoblaciones
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
 

Polimorfismo java

  • 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
  • 7. Tipos de Polimorfismo Universal - Inclusão - Paramétrico Ad-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. Exemplo de Polimorfismo 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
  • 12. Exemplo de Polimorfismo 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
  • 18. Benefícios do Polimorfismo Clareza e manutenção de códigos Aplicações flexíveis
  • 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