Boa noite;
Pessoal, as classes abstratas não podem ser instanciadas certo ou pelo menos dar o new; mas se por exemplo se eu possuo um classe abstrata chamada Conta, em outra classe crio um array de conta como
private Conta[] conta = new Conta[10];
por que neste caso ele aceita?/
Agradeço a todos que colaborarem,
abraços
olá,
até onde sei, nesse caso vc não estará criando objetos Conta, e sim um objeto array que “poderá” guardar várias referências a objetos Conta.
…como nesse caso onde vc poderá guardar referências a objetos ‘é um’ a objetos ContaCorrente…[code]public abstract class Conta {
}
public class ContaCorrente extends Conta{
/** Creates a new instance of ContaCorrente */
public ContaCorrente() {
}
}
public class TestaConta {
public static void main(String[] args) {
Conta [] c = new Conta[3];
c[0] = new ContaCorrente();
c[1] = new ContaCorrente();
c[2] = new ContaCorrente();
}
}[/code]…que “extendem” objetos Conta e implementam seus métodos de forma concreta.
[]'s
Imagine uma classe abstrata como sendo uma Interface com Métodos. Por isso ela não pode ser instanciada, mas pode ser extendida.
Por isso que vc tenta new ClasseAbstrata e não funciona.
No caso do Array, o new está indo para o Array, e não para sua classe. Array também é um Objeto.
