Laboratório I
Mateus Raeder
Polimorfismo e arrays
 Algumas vezes não sabemos o tipo que está armazenado em uma
variável
Por exemplo:
Teclado t = new Teclado();
Imovel i;
if(t.leInt(“Digite 1 para Velho e 2 para Novo: ”) == 1)
i = new Velho();
else
i = new Novo();
Mateus Raeder – maio de 2010
Polimorfismo e arrays
 Como acessar os métodos exclusivos de Velho ou Novo, se não
sabemos
Imovel
Usamos a palavra reservada:
instanceof
Verifica se uma variável é uma
instância de algum objeto
+imprimeDados()
Velho
+imprimeVelho()
Mateus Raeder – maio de 2010
Novo
+imprimeNovo()
Polimorfismo e arrays
 Por exemplo:
Teclado t = new Teclado();
Imovel i;
if(t.leInt(“Digite 1 para Velho e 2 para Novo: ”) == 1)
i = new Velho();
else
Imovel
i = new Novo();
if(i instanceof Velho){
Velho v = (Velho) i;
v.imprimeVelho();
}
if(i instanceof Novo){
Novo v = (Novo) i;
v.imprimeNovo();
}
Mateus Raeder – maio de 2010
+imprimeDados()
Velho
+imprimeVelho()
Novo
+imprimeNovo()
Polimorfismo e arrays
 Podemos criar arrays que possuem diversos tipos diferentes
Imovel i[] = new Imovel[3];
for(int j=0; j<3; j++)
if(t.leInt(“Digite 1 para Velho e 2 para Novo: ”) == 1)
i[j] = new Velho();
else
Imovel
i[j] = new Novo();
for(int j=0; j<3; j++){
if(i[j] instanceof Velho){
Velho v = (Velho) i[j];
v.imprimeVelho();
}
if(i[j] instanceof Novo){
Novo v = (Novo) i[j];
v.imprimeNovo();
}
} Raeder – maio de 2010
Mateus
+imprimeDados()
Velho
+imprimeVelho()
Novo
+imprimeNovo()
Download

Polimorfismo e arrays