Não podemos dar new em Conta, mas por que, então, podemos dar new em Conta[10], por exemplo?Por que?
Classe Abstrat
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();
}
Ok ok ok…Beleza muito obrigado.
Criado 21 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 2
Participantes 2
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo