2010-11-19 51 views

Respuesta

7

Sí se puede:

abstract class AbstractClass { 

} 

class DeclaredClass extends AbstractClass { 

} 

AbstractClass c = new DeclaredClass(); 

Lo anterior es perfectamente válido.

+0

Pensé que no estabas permitido en stantiate una clase abstracta, ¿o estoy leyendo la última línea incorrectamente? – nogamo

+1

@nogame Eche un vistazo más de cerca. La clase declarada se instancia no la clase abstracta. – helpermethod

+0

Ah, entonces si fuera DeclaredClass c = new AbstractClass(); entonces sería inválido? – nogamo

2

Lo que entiendo es,

List a = new ArrayList(); 

Aquí List es una referencia a un objeto ArrayList. Entonces, ¿la pregunta significa que es posible en el caso de la clase abstracta?

+1

La lista es una interfaz, por cierto. –

+0

mi mal ... mal ejemplo ... pero sigue siendo una referencia ... –

0

Puede crear instancias de una clase abstracta de 2 maneras:

abstract class AbstractClass {} 

1. Ampliación de la clase abstracta:

class ConcreteClass extends AbstractClass {} 
    AbstractClass c = new ConcreteClass(); 

2. Usando Anónimo Clase:

AbstractClass c = new AbstractClass(){}; 
Cuestiones relacionadas