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()