1
resposta

utilizando objeto no lugar de conta

package br.com.microbank.banco.modelo;

public class MemoriaDeContas {

    private Object[] referencia;
    private int posicaoReferencia;

    public MemoriaDeContas() {
        this.referencia = new Conta[10];
        this.posicaoReferencia = 0;
    }

    public void adiciona(Conta ref) {

        this.referencia[0] = ref;
        posicaoReferencia++;

    }

    public int getElementosAramzenados() {

        return this.posicaoReferencia;

    }

    public Object getReferencia(int pos) {

        return this.referencia[pos];

    }

}
package br.com.microbank.banco.teste;

import br.com.microbank.banco.modelo.Cliente;
import br.com.microbank.banco.modelo.Conta;
import br.com.microbank.banco.modelo.ContaCorrente;
import br.com.microbank.banco.modelo.ContaPoupanca;
import br.com.microbank.banco.modelo.MemoriaDeContas;

public class Teste {
    public static void main(String[] args) {

        MemoriaDeContas memoria = new MemoriaDeContas();

        Conta cc = new ContaCorrente(22, 1524);
        memoria.adiciona(cc);

        Conta cc2 = new ContaCorrente(2, 41568);
        memoria.adiciona(cc2);

        ContaPoupanca cp1 = new ContaPoupanca(12, 25784);
        memoria.adiciona(cp1);

        int tamanho = memoria.getElementosAramzenados();
        System.out.println(tamanho);

        Object ref = memoria.getReferencia(0);
        System.out.println(((Conta) ref).getNumero());

    }
}
1 resposta

Perfeito Ezequiel, mas usando Conta ref você evita de ter que fazer o cast de Object para Conta:

Conta ref = guardador.getReferencia(0);