Acho que acertei no desafio. Códigos seguem abaixo:
package br.com.bytebank.banco.modelo;
public class GuardadorQualquerReferencias {
private Object[] qualquerReferencia;
private int indice;
public GuardadorQualquerReferencias() {
this.qualquerReferencia = new Object[10];
this.indice = 0;
}
public void adiciona(Object qualquerReferencia) {
this.qualquerReferencia[this.indice] = qualquerReferencia;
this.indice++;
}
public int getQuantidadeDeElementos() {
return this.indice;
}
public Object getReferencia(int pos) {
return this.qualquerReferencia[pos];
}
}
package br.com.bytebank.banco.test;
import br.com.bytebank.banco.modelo.Cliente;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.ContaPoupanca;
import br.com.bytebank.banco.modelo.GuardadorQualquerReferencias;
public class TesteQualquerReferencia {
public static void main(String[] args) {
GuardadorQualquerReferencias guardaTudo = new GuardadorQualquerReferencias();
Cliente cliente = new Cliente();
cliente.setNome("Niko");
cliente.setCpf("111.222.333-22");
cliente.setProfissao("Programador");
guardaTudo.adiciona(cliente);
System.out.println(cliente.toString());
System.out.println();
ContaCorrente cc = new ContaCorrente(300432, 33432);
guardaTudo.adiciona(cc);
System.out.println(cc.toString());
System.out.println();
ContaPoupanca cp = new ContaPoupanca(99654, 554334);
guardaTudo.adiciona(cp);
System.out.println(cp.toString());
System.out.println();
System.out.println("Total de Objetos guardados: " + guardaTudo.getQuantidadeDeElementos());
}
}
Resultado: