Resolvi tentar ver a solução pro problema usando type cast e as classes já criadas no projeto utilizado no curso:
package br.com.bytebank.banco.teste;
import br.com.bytebank.banco.modelo.Cliente;
import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.ContaPoupanca;
public class TesteArrayReferencias {
public static void main(String[] args) {
Object[] referencia = new Object[5];
ContaCorrente cc1 = new ContaCorrente(22, 11);
referencia[0] = cc1;
ContaPoupanca cc2 = new ContaPoupanca(22, 22);
referencia[1] = cc2;
Cliente cliente = new Cliente();
referencia[2] = cliente;
// System.out.println(cc2.getNumero());
// System.out.println(contas[1].getNumero());
Conta ref = (ContaPoupanca) referencia[1]; //type cast
System.out.println(cc2.getNumero());
System.out.println(ref.getNumero());
Cliente clienteNormal = new Cliente();
clienteNormal.setNome("Flavio");
Cliente clienteVip = new Cliente();
clienteVip.setNome("Romulo");
Object[] refs = new Object[5];
refs[0] = clienteNormal;
refs[1] = clienteVip;
**Cliente Vip = (Cliente) refs[1];**
System.out.println(Vip.getNome());
}
}
o código compilou e me retornou o nome. Esse seria o uso do type cast (entre os asteriscos duplo) citado na resposta do exe?