Mas não continua sendo uma Conta()?
Mas não continua sendo uma Conta()?
Nesse exercício, não podemos dar um new na conta pois ela é uma classe abstrata (não pode ter instancias), mas quando fazemos new Conta[10]
o que estamos instanciando na realidade não é uma Conta mas sim um array de contas que pode guardar referências para ContaCorrente ou ContaPoupanca:
// Criar um array de contas é válido, pois não estamos
// instanciando uma conta.
Conta[] contas = new Conta[10];
// Ainda podemos criar variáveis do tipo conta e
// instanciar subclasses não abstratas
Conta cc = new ContaCorrente();
// podemos guardar a referência da variável cc
// no array pois ContaCorrente é uma Conta
contas[0] = cc;
// A única coisa que não podemos fazer é instanciar
// a Conta. O código abaixo gera um erro de compilação!
Conta c = new Conta();
Valeeeeu! Sanou a minha duvida!