Classes Abstratas!

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.