6.1 Classe abstraite
Une classe abstraite est une classe qui ne peut pas être instanciée.
Cela signifie qu’on ne peut pas utiliser directement son constructeur pour créer une instance. Du coup, une classe abstraite n’est utile que si elle a des classes héritières.
Elle est définie avec abstract dans sa signature : public abstract class maClasseAbstraite {}
Elle contient des attributs à l’instar des classes concrètes.
Le constructeur est mis en place normalement puis il sera complété dans les classes enfant (qui appelleront super(liste de parametres du parent)).
Elle contient des méthodes concrètes, çàd définies dans la classe : elles seront applicables aux classes enfant et pourront être substituée si besoin (@Override).
Elle contient des méthodes abstraites (définies dans la section 6.2 suivante) : simplement définies par leur signature, elles seront concrètement implémentées dans les classes enfant.
A noter : une classe concrète ne peut pas contenir des méthodes abstraites.
Plus de détails sur les classes abstraites et leurs constructeurs ici