Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não podemos dar new em Conta, mas por que, então, podemos dar new em Conta[10], por exemplo?

O texto afirma que eu posso utilizar o new Conta[10] que seria uma variável, porem fazendo o teste não foi possível criar Conta conta= new Conta[10].

Qual seria a diferença entre uma objeto Conta e uma variável Conta[10]?

3 respostas
solução!

Oi Igor, tudo bem ?

Cara quando fazemos new Conta[10] na verdade estamos criando na memória um espaço para 10 referências de contas, o que chamamos de array. E você não pode guardar um array em uma conta, precisa guardar essa referência num array de contas :

Conta[] contas= new Conta[10]

Olá, Igor.

Também achei o enunciado um pouco confuso mas o que o instrutor quis dizer é que é possível instanciar um array de contas mas não instanciar uma conta.

Exemplo:

Conta c = new Conta();

Não compila, pois Conta é uma classe abstrata.

Conta[] contas = new Conta[10];

Compila, pois você não está tentando criar nenhuma Conta, apenas reservando espaços na memória para alocar Contas(que devem ser implementações das classes concretas ContaCorrente e ContaPoupanca).

Obrigado pessoal.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software