SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Universidade Federal de Sergipe
Departamento de Computação
Programação Orientada a Objetos




                                 Polimorfismo

Felipe J. R. Vieira




        Última Atualização em Novembro de 2011
Recapitulando




         103403 – Programação Orientada a Objetos   2
Sumário




  ➢
      Polimorfismo.




              103403 – Programação Orientada a Objetos   3
Polimorfismo


  ➢ Na herança, vimos que todo Gerente é um
  Funcionario, pois é uma extensão deste.

  ➢
   Podemos nos referir a um Gerente como sendo
  um Funcionario.

  ➢
    Pois Gerente é um Funcionario. Essa é a
  semântica da herança.



           103403 – Programação Orientada a Objetos   4
Polimorfismo


  ➢ Na herança, vimos que todo Gerente é um
  Funcionario, pois é uma extensão deste.

  ➢
   Podemos nos referir a um Gerente como sendo
  um Funcionario.

  ➢
    Pois Gerente é um Funcionario. Essa é a
  semântica da herança.



           103403 – Programação Orientada a Objetos   5
Polimorfismo


  ➢ Polimorfismo é a capacidade de um objeto
  poder ser referenciado de várias formas;

  ➢
   O polimorfismo permite programar no geral
  em vez de programar no específico.




           103403 – Programação Orientada a Objetos   6
Polimorfismo

  ➢ É a capacidade de tipos mais abstratos
  representarem comportamentos de tipos mais
  específicos;

  ➢  Com polimorfismo, podemos projetar e
  implementar sistemas que são facilmente
  extensíveis – novas classes podem ser
  adicionadas a partes gerais do programa com
  pouca ou nenhuma modificação, contanto que
  as novas classes façam parte da hierarquia de
  herança     que     o   programa     processa
  genericamente.

           103403 – Programação Orientada a Objetos   7
Polimorfismo


  ➢A ideia de polimorfismo só tem sentindo com a
  existência do paradigma de herança;

  ➢
     Consiste na possibilidade de que uma
  referência a objetos de uma classe possa se
  conectar também com objetos descendentes
  desta.




           103403 – Programação Orientada a Objetos   8
Polimorfismo




       Funcionário                                   Gerente




          103403 – Programação Orientada a Objetos             9
Polimorfismo



  ➢ Deve-se deixar claro que podemos acessar
  apenas as operações pertencentes a classe
  associada a referência. O resto das operações
  do objeto não são acessíveis através desta
  referência.




           103403 – Programação Orientada a Objetos   10
Outros Tipos de Polimorfismo

   ●
     Tipo Genérico - 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;
       public class Agenda {

           public static void main(String[] args){
               ArrayList<Pessoa> objetos = new ArrayList<Pessoa>();
               Objetos.add(new Empregado());
               Objetos.add(new Pessoa());
           }
       }




                                  Polimorfismo                        11
Tipos de Polimorfismo Estáticos

   ●
    Polimorfismo estático normalmente é entendido como uma
   característica da linguagem e não como uma forma de
   polimorfismo.

   ●Sobrecarga - é a capacidade de poder definir dois, ou mais
   métodos, numa mesma classe com o mesmo nome;
       public class Agenda {

           public int calculaIdade (int ano , int mes, int dia);
           public int calculaIdade ( Date data ) ;
           public int calculaIdade ( Calendar data ) ;

       }




                                       Polimorfismo                12
Tipos de Polimorfismo Estáticos
   ● Sobrescrita - é a capacidade de poder redefinir a
   implementação de um método que já foi definido e
   implementado em uma classe superior na hierarquia de
   herança.
           public class Somador {
               public int calculaSoma ( int inicio, int fim ){
                     int soma = 0 ;
                     for ( int i = inicio ; i <= fim ; i++ ){
                           soma += i;
                     }
                     return soma;
               }
           }
           public class SomadorInteligente extends Somador {
               public int calculaSoma ( int inicio, int fim ){
                     int umAteInicio = inicio ( inicio+ 1 ) / 2 ;
                     int umAteFim = fim ( fim+ 1 ) / 2 ;
                     return umAteFim – umAteInicio;
               }
           }

                               Polimorfismo                         13
Tipos de Polimorfismo Estáticos

   ●Sombreamento - é a capacidade de poder definir duas, ou
   mais, variáveis com o mesmo nome em escopos diferentes;
       public class Teste {
           String nome; // variável no escopo “classe”
           public void setName ( String nome ){ // variável no escopo “método”
                 this .nome = nome;
           }
       }

   ● Auto-boxing e Auto-unboxing - Em algumas situações é
   necessário converter valores primitivos para objetos. Isso é
   conhecido como boxing (colocar em caixas). O processo
   inverso é chamado unboxing (retirar das caixas). Auto-boxing
   e Auto-umboxing acontece quando próprio compilador faz
   essa operação.



                                    Polimorfismo                                 14
Referências


  ➢   Java: Como Programar 6ª Edição.

  ➢   Material da Caelum.




              103403 – Programação Orientada a Objetos   15

Weitere ähnliche Inhalte

Was ist angesagt?

Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoCaveiras
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
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
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
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
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaJuliano Padilha
 

Was ist angesagt? (20)

POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
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
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado 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
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
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 - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
 

Andere mochten auch

POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClasseFelipe J. R. Vieira
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosFelipe J. R. Vieira
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java Evandro Júnior
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
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
 
Polimorfismo en JAVA
Polimorfismo en JAVAPolimorfismo en JAVA
Polimorfismo en JAVAByron David
 
Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013guisester
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Luís Gustavo Martins
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java hack-13
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoRobson Ferreira
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 

Andere mochten auch (20)

Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
Polimorfismo final
Polimorfismo finalPolimorfismo final
Polimorfismo final
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Programacion oo
Programacion ooProgramacion oo
Programacion oo
 
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
 
Polimorfismo en JAVA
Polimorfismo en JAVAPolimorfismo en JAVA
Polimorfismo en JAVA
 
Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013
 
Aplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_javaAplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_java
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 

Ähnlich wie POO - Aula 10 - Polimorfismo

Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Polimorfismo si facol
Polimorfismo si facolPolimorfismo si facol
Polimorfismo si facolJosé André
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012Luís Cobucci
 
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
 
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
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaWanderlei Silva do Carmo
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16marcusNOGUEIRA
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetosWesley R. Bezerra
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)George Mendonça
 
(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol GynLuís Cobucci
 
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
 

Ähnlich wie POO - Aula 10 - Polimorfismo (20)

Herança
HerançaHerança
Herança
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Polimorfismo si facol
Polimorfismo si facolPolimorfismo si facol
Polimorfismo si facol
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
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
 
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
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
5 oo-avançado
5 oo-avançado5 oo-avançado
5 oo-avançado
 
Poo (1)
Poo (1)Poo (1)
Poo (1)
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 

Mehr von Felipe J. R. Vieira

ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasFelipe J. R. Vieira
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfaceFelipe J. R. Vieira
 
MC – Aula 10 – Sistemas Operacionais
MC – Aula 10 – Sistemas OperacionaisMC – Aula 10 – Sistemas Operacionais
MC – Aula 10 – Sistemas OperacionaisFelipe J. R. Vieira
 
MC – Aula 09 – Sistemas Operacionais (Introdução)
MC – Aula 09 – Sistemas Operacionais (Introdução)MC – Aula 09 – Sistemas Operacionais (Introdução)
MC – Aula 09 – Sistemas Operacionais (Introdução)Felipe J. R. Vieira
 
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesMC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesFelipe J. R. Vieira
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoFelipe J. R. Vieira
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoFelipe J. R. Vieira
 
POO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoPOO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoFelipe J. R. Vieira
 
ICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaFelipe J. R. Vieira
 
POO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresPOO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresFelipe J. R. Vieira
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaFelipe J. R. Vieira
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaFelipe J. R. Vieira
 
MC - Aula 03 - Conceitos Iniciais
MC - Aula 03 -  Conceitos IniciaisMC - Aula 03 -  Conceitos Iniciais
MC - Aula 03 - Conceitos IniciaisFelipe J. R. Vieira
 
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao JavaPOO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao JavaFelipe J. R. Vieira
 
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeFelipe J. R. Vieira
 
MC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoMC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoFelipe J. R. Vieira
 
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosFelipe J. R. Vieira
 
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaPOO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaFelipe J. R. Vieira
 

Mehr von Felipe J. R. Vieira (20)

ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e Interface
 
MC – Aula 11 – Aplicativos
MC – Aula 11 – AplicativosMC – Aula 11 – Aplicativos
MC – Aula 11 – Aplicativos
 
MC – Aula 10 – Sistemas Operacionais
MC – Aula 10 – Sistemas OperacionaisMC – Aula 10 – Sistemas Operacionais
MC – Aula 10 – Sistemas Operacionais
 
MC – Aula 09 – Sistemas Operacionais (Introdução)
MC – Aula 09 – Sistemas Operacionais (Introdução)MC – Aula 09 – Sistemas Operacionais (Introdução)
MC – Aula 09 – Sistemas Operacionais (Introdução)
 
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesMC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de Repetição
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de Armazenamento
 
POO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoPOO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de Acesso
 
ICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional Múltipla
 
POO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresPOO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e Vetores
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e Memória
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
MC - Aula 03 - Conceitos Iniciais
MC - Aula 03 -  Conceitos IniciaisMC - Aula 03 -  Conceitos Iniciais
MC - Aula 03 - Conceitos Iniciais
 
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao JavaPOO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
 
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
 
MC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoMC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da Computação
 
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
 
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaPOO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
 

POO - Aula 10 - Polimorfismo

  • 1. Universidade Federal de Sergipe Departamento de Computação Programação Orientada a Objetos Polimorfismo Felipe J. R. Vieira Última Atualização em Novembro de 2011
  • 2. Recapitulando 103403 – Programação Orientada a Objetos 2
  • 3. Sumário ➢ Polimorfismo. 103403 – Programação Orientada a Objetos 3
  • 4. Polimorfismo ➢ Na herança, vimos que todo Gerente é um Funcionario, pois é uma extensão deste. ➢ Podemos nos referir a um Gerente como sendo um Funcionario. ➢ Pois Gerente é um Funcionario. Essa é a semântica da herança. 103403 – Programação Orientada a Objetos 4
  • 5. Polimorfismo ➢ Na herança, vimos que todo Gerente é um Funcionario, pois é uma extensão deste. ➢ Podemos nos referir a um Gerente como sendo um Funcionario. ➢ Pois Gerente é um Funcionario. Essa é a semântica da herança. 103403 – Programação Orientada a Objetos 5
  • 6. Polimorfismo ➢ Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas; ➢ O polimorfismo permite programar no geral em vez de programar no específico. 103403 – Programação Orientada a Objetos 6
  • 7. Polimorfismo ➢ É a capacidade de tipos mais abstratos representarem comportamentos de tipos mais específicos; ➢ Com polimorfismo, podemos projetar e implementar sistemas que são facilmente extensíveis – novas classes podem ser adicionadas a partes gerais do programa com pouca ou nenhuma modificação, contanto que as novas classes façam parte da hierarquia de herança que o programa processa genericamente. 103403 – Programação Orientada a Objetos 7
  • 8. Polimorfismo ➢A ideia de polimorfismo só tem sentindo com a existência do paradigma de herança; ➢ Consiste na possibilidade de que uma referência a objetos de uma classe possa se conectar também com objetos descendentes desta. 103403 – Programação Orientada a Objetos 8
  • 9. Polimorfismo Funcionário Gerente 103403 – Programação Orientada a Objetos 9
  • 10. Polimorfismo ➢ Deve-se deixar claro que podemos acessar apenas as operações pertencentes a classe associada a referência. O resto das operações do objeto não são acessíveis através desta referência. 103403 – Programação Orientada a Objetos 10
  • 11. Outros Tipos de Polimorfismo ● Tipo Genérico - 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; public class Agenda { public static void main(String[] args){ ArrayList<Pessoa> objetos = new ArrayList<Pessoa>(); Objetos.add(new Empregado()); Objetos.add(new Pessoa()); } } Polimorfismo 11
  • 12. Tipos de Polimorfismo Estáticos ● Polimorfismo estático normalmente é entendido como uma característica da linguagem e não como uma forma de polimorfismo. ●Sobrecarga - é a capacidade de poder definir dois, ou mais métodos, numa mesma classe com o mesmo nome; public class Agenda { public int calculaIdade (int ano , int mes, int dia); public int calculaIdade ( Date data ) ; public int calculaIdade ( Calendar data ) ; } Polimorfismo 12
  • 13. Tipos de Polimorfismo Estáticos ● Sobrescrita - é a capacidade de poder redefinir a implementação de um método que já foi definido e implementado em uma classe superior na hierarquia de herança. public class Somador { public int calculaSoma ( int inicio, int fim ){ int soma = 0 ; for ( int i = inicio ; i <= fim ; i++ ){ soma += i; } return soma; } } public class SomadorInteligente extends Somador { public int calculaSoma ( int inicio, int fim ){ int umAteInicio = inicio ( inicio+ 1 ) / 2 ; int umAteFim = fim ( fim+ 1 ) / 2 ; return umAteFim – umAteInicio; } } Polimorfismo 13
  • 14. Tipos de Polimorfismo Estáticos ●Sombreamento - é a capacidade de poder definir duas, ou mais, variáveis com o mesmo nome em escopos diferentes; public class Teste { String nome; // variável no escopo “classe” public void setName ( String nome ){ // variável no escopo “método” this .nome = nome; } } ● Auto-boxing e Auto-unboxing - Em algumas situações é necessário converter valores primitivos para objetos. Isso é conhecido como boxing (colocar em caixas). O processo inverso é chamado unboxing (retirar das caixas). Auto-boxing e Auto-umboxing acontece quando próprio compilador faz essa operação. Polimorfismo 14
  • 15. Referências ➢ Java: Como Programar 6ª Edição. ➢ Material da Caelum. 103403 – Programação Orientada a Objetos 15