Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Array de Clientes - Teste

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?

1 resposta
solução!

Boa noite, Lucas!

É exatamente sobre esse casting que o exercício se refere!

O array guarda referências do tipo Object. Para você poder ter acesso aos métodos da Classe Conta, é preciso fazer essa conversão/cast.