Classe Abstrat

2 respostas
sidmar

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

2 Respostas

T

new Conta[10] não cria 10 objetos do tipo Conta, mas sim um array que pode conter até 10 objetos que são instâncias de classes que estendem a classe Conta. OK?

Vou dar um exemplo "avícola". A galinha bota ovos:

class Galinha {
    public Ovo botaOvo() { return new Ovo(); }
}

Mas ela não é capaz de criar arrays de ovos. Quem cria arrays de ovos é a fábrica de caixas de ovos:

class FabricaDeCaixas {
    public Ovo[] fabricaCaixa { return new Ovo[12]; }
}

Mas quando a caixa é criada, ela vem vazia, sem ovos. Você é que tem de pôr os ovos na caixa:

Galinha maryLou = new Galinha();
FabricaDeCaixas f = new FabricaDeCaixas();
Ovo[] caixa = f.fabricaCaixa();
for (int i = 0; i < caixa.length; ++i) {
    caixa[i] = maryLou.botaOvo();
}
sidmar

Ok ok ok…Beleza muito obrigado.

Criado 21 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 2
Participantes 2