Laboratório I Mateus Raeder
Mateus Raeder – maio de 2010 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 Como acessar os métodos exclusivos de Velho ou Novo, se não sabemos Polimorfismo e arrays Velho +imprimeVelho() Novo +imprimeNovo() Imovel +imprimeDados() Usamos a palavra reservada: instanceof Verifica se uma variável é uma instância de algum objeto
Mateus Raeder – maio de 2010 Por exemplo: Polimorfismo e arrays Velho +imprimeVelho() Novo +imprimeNovo() Imovel +imprimeDados() 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(); 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 Polimorfismo e arrays Velho +imprimeVelho() Novo +imprimeNovo() Imovel +imprimeDados() 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 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(); } Podemos criar arrays que possuem diversos tipos diferentes