Boa Tarde galera!
Tem um desafio da caelum 9.7 na parte que explica sobre classes abstratas e há uma seguinte pergunta:
Não podemos dar new em Conta, mas por que, então, podemos dar new em Conta[10], por exemplo?
se colocamos abstract na classe sabemos que não podemos instanciala e se colocar em um metodo dela seria para fazer a obrigatoriedade do método em classes filhas correto? agora por que colocando abstract na classe e instacialos como array da certo?
Obrigado
O ‘new’ no caso do Array não cria uma instância de Conta, cria um Array que pode conter Contas, onde Conta pode ser uma instância de quaquer classe concreta que instancie conta.
Conta[] contas = new Conta[10]; // Array de Classe Abstrata
contas[0] = new ContaCorrente(...); // Classe Concreta
contas[1] = new ContaPupanca(...); // Classe Concreta