Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A. Polimorfismo
A palavra polimorfismo vem do grego e significa que pode tomar vrias
formas. Esta caracterstica um dos conceitos essenciais da programao
orientada para o objeto. Enquanto que a herana se refere s classes (e sua
hierarquia), o polimorfismo diz respeito aos mtodos dos objetos.
Pensando mais em objetos e funcionalidades, pense agora no termo abrir,
por exemplo. Voc pode abrir uma porta, uma caixa, uma janela e uma
conta bancria. A palavra abrir pode ser aplicada a muitos objetos do mundo
real, sendo que cada objeto interpreta abrir de sua prpria maneira.
Porm, voc pode simplesmente dizer abrir, para descrever a ao.
Uma linguagem polimrfica a que suporta polimorfismo (Actionscript, Java),
j a linguagem monomrfica no suporta polimorfismo (Pascal, ASP). O
polimorfismo pode ser do tipo
Ad-Hoc (Sobrecarga
(overloading) ou
Principal.java
public class Principal{
public static void main(String args[]){
Abrir acaoAbrir = new Abrir();
Janela j = new Janela();
acaoAbrir.imprimirAcao();
acaoAbrir = j;
acaoAbrir.imprimirAcao();
acaoAbrir = cc;
acaoAbrir.imprimirAcao();
}
}
10.
11.
acaoAbrir = cc;
acaoAbrir.imprimirAcao();
}
public int soma(int n1, int
n2){ return n1+n2;
}
public String soma(double n1, double n2){ return
"O resultado da soma eh:"+(n1+n2);
}
}
Navio.java
public class Navio extends Brinquedo{
public Aviao(){}
public Navio(){}
System.out.println("VOAR");
System.out.println("NAVEGAR");
}
}
}
}
Principal.java
Aviao boeing = new Aviao();
controleRemoto controle = new controleRemoto(boeing);
Observe que o construtor da classe controleRemoto espera receber um
objeto do tipo Brinquedo, porm, a classe Principal envia para este construtor
um objeto do tipo Aviao. No ocorre nenhum erro, pois Aviao classe filha de
Brinquedo, ento, ao ter um objeto do tipo Brinquedo, a classe controleRemoto
passa a ter a capacidade de receber tanto objetos do tipo Brinquedo como
objetos
das
classes
filho
de
Brinquedo.
mesmo
ocorre
quando
conhecido.
Abaixo
se
encontra
uma
das
possveis
}
}
B. Exerccios de Fixao
1. Sem consultar o material, responda: o que voc entendeu por
polimorfismo?
2. Quais so os tipos de polimorfismo?
3. Crie uma classe Produto, que seja superclasse das classes DVD e
Televisor. A classe Produto deve possuir como atributos nome e
IdentificadorNumerico, e como mtodo mostrarDados(). A classe
Televisor deve ter como atributo marca e como mtodo mostrarDados().
A classe DVD deve ter como atributos ttulo e preo e como mtodo
mostrarDados(). O mtodo mostrarDados() para cada uma das classes
deve imprimir em tela uma mensagem diferente. Sugere-se que, para
cada classe, a impresso em tela indique em que classe est sendo
executado o mtodo. Ex.: para a classe DVD, o mtodo pode imprimir:
Sou da classe DVD.
4. Crie uma classe principal que teste o polimorfismo do exerccio 3.
5. Responda: Que tipo de polimorfismo foi usado no exerccio 4?
6. Modifique a classe Produto de forma que utilize polimorfismo Ad-Hoc
Sobrecarga.
7. Crie uma classe cadastroProdutos que tenha como atributo um objeto do
tipo Produto e como mtodo mostrarDadosdoProduto(). O mtodo
mostrarDadosdoProduto() deve invocar o mtodo mostrarDados() do
atributo do tipo Produto.
8. Modifique a classe Principal, de forma que utilize Polimorfismo Universal
Incluso utilizando a classe criada no exerccio 7.
9. Transcreva as duas classes apresentadas na seo de Polimorfismo
Paramtrico e execute-as para testar sua funcionalidade.
10. Modifique o exerccio da disciplina de estrutura de dados (Lista Ligada
ou Duplamente Ligada) de tal forma que a lista utilize Polimorfismo
Paramtrico, e assim, possa receber dados de qualquer tipo.
Os exerccios devem ser enviados via moodle. No se esquecer de inserir o
nome da dupla no arquivo zipado!