SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratosMaurício Linhares
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalWesley R. Bezerra
 
7 rules of simple and maintainable code
7 rules of simple and maintainable code7 rules of simple and maintainable code
7 rules of simple and maintainable codeGeshan Manandhar
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
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
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 

What's hot (20)

Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicional
 
7 rules of simple and maintainable code
7 rules of simple and maintainable code7 rules of simple and maintainable code
7 rules of simple and maintainable code
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
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
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 

Viewers also liked

Viewers also liked (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 - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 

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