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

Não entendi como testar a ultima instrução do "Mão na Massa"

Na atividade mão na massa deste módulo no passo 4 temos o seguinte:

4 - Experimente agora acessar o elemento na posição contas[1]. Como em tempo de execução ele é do tipo ContaPoupanca, o cast não funcionará e um exceção será lançada no console.

No caso eu não entendi como simular esse erro, pois nos testes que eu fiz aqui não deu nenhum erro. Seria esse o caminho para testar?

package br.com.bytebank.teste;

import br.com.bytebank.modelo.Conta;
import br.com.bytebank.modelo.ContaCorrente;
import br.com.bytebank.modelo.ContaPoupanca;

public class TesteArrayReferencias {
    public static void main(String[] args) {
        Conta[] contas = new Conta[5];

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

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

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

        ContaCorrente ref = (ContaCorrente) contas[0];
        //Deveria dar erro aqui?
        System.out.println(contas[1].getNumero());

        System.out.println(cc2.getNumero());
        System.out.println(ref.getNumero());
    }
}
1 resposta
solução!

Olá Júlio, tudo bem?

Quando o instrutor diz "Experimente agora acessar o elemento na posição contas[1]", ele pede para que você mude a linha abaixo de: ContaCorrente ref = (ContaCorrente) contas[0]; para: ContaCorrente ref = (ContaCorrente) contas[1];

Como contas[1] se refere à ContaPoupanca e ela é do mesmo nível que a ContaCorrente, daria um erro de type cast.

Para funcionar, a linha de código em negrito deveria ser: ContaPoupanca ref = (ContaPoupanca) contas[1]; //mesmo tipo ou Conta ref = contas[1]; //Tipo mãe Conta recebendo tipo filha ContaPoupanca.

Espero ter ajudado. Bons estudos e até!