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

Estou com dúvida no curso de Java e Orientação a Objetos, no exercício 8 do capítulo Classes Abstratas.

Mas não continua sendo uma Conta()?

2 respostas
solução!

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!

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