3
respostas

Referente a Java 06; Aula 02 número 09...

Conta[] contas = new Conta[5];

ContaCorrente cc1 = new ContaCorrente(22, 11); contas[0] = cc1;

// cria instância de ContaPoupanca

ContaPoupanca cc2 = new ContaPoupanca(22, 22); contas[1] = cc2;

System.out.println(contas[1].getNumero() );

// alterou o tipo, realizando o cast

ContaCorrente ref = (ContaCorrente) contas[0]; <=== Esta parte...

Por que eu tenho que colocar um Type Cast nesta parte quando a minha referência de array " contas[0] " aponta para " ContaCorrente" ?

Desde já muito obrigado.

System.out.println(cc2.getNumero()); System.out.println(ref.getNumero()); }

3 respostas

Bom dia Thiago!

Você precisa adicionar o Type Cast pois o array que guarda as referências é um array de Contas e não um array de ContasCorrentes.

Se essa linha:

Conta[] contas = new Conta[5];

Fosse assim:

ContaCorrente[] contas = new ContaCorrente[5];

O cast seria desnecessário.

Porém essa linha:

contas[1] = cc2;

Deixaria de compilar pois você estaria tentando colocar uma ContaPoupanca num array de ContasCorrentes.

Obrigado

Não há de quê! :-)