Classes Abstratas!

2 respostas
Benjamin10

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

2 Respostas

lucianodacunha.net

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...
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();
        
        
    }
    
}
...que "extendem" objetos Conta e implementam seus métodos de forma concreta.

[]'s

Hebert_Coelho

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.

Criado 31 de agosto de 2010
Ultima resposta 31 de ago. de 2010
Respostas 2
Participantes 3