Je ne suis pas si sûr de ce que cela impliquerait et mon manuel est en train de danser autour de la réponse.Une classe abstraite peut-elle être utilisée comme type de référence?
Répondre
Oui, vous pouvez:
abstract class AbstractClass {
}
class DeclaredClass extends AbstractClass {
}
AbstractClass c = new DeclaredClass();
Ce qui précède est tout à fait valable.
Ce que je comprends est,
List a = new ArrayList();
Ici List
est une référence à un objet ArrayList
. Donc, la question signifie est-ce possible dans le cas de la classe abstraite?
La liste est une interface, soit dit en passant. –
mon mauvais ... mauvais exemple ... mais toujours une référence ... –
Vous pouvez instancier une classe abstraite de 2 façons:
abstract class AbstractClass {}
1. L'extension de la classe abstraite:
class ConcreteClass extends AbstractClass {}
AbstractClass c = new ConcreteClass();
2. Utiliser Anonyme Classe:
AbstractClass c = new AbstractClass(){};
Je pensais que vous n'étiez pas autorisé à stantiate une classe abstraite, ou suis-je en train de lire incorrectement la dernière ligne? – nogamo
@nogame Regardez de plus près. La classe déclarée est instanciée et non la classe abstraite. – helpermethod
Oh, donc si c'était DeclaredClass c = new AbstractClass(); alors ce serait invalide? – nogamo