Outils pour utilisateurs

Outils du site


bloc2:prog:poo:classesabstraites

Ceci est une ancienne révision du document !


Classes abtraites

Concept

Une classe abstraite est une classe qui ne peut pas être instanciée directement, mais qui sert plutôt de modèle ou de base pour d'autres classes. Elle est conçue pour être héritée et étendue par d'autres classes qui peuvent en revanche être instanciées.

Dans une classe abstraite, on pourra trouver :

  • Des méthodes et attributs classiques, comme on en a déjà l’habitude en POO ;
  • Des méthodes dites « abstraites » qui fournissent uniquement leur signature. Charge aux classes qui en héritent de définir le code de ces méthodes.

Exemple :

// une classe abstraite A
public abstract class A
{
    // une méthode non abstraite (=implémentée) dans A
    public void maMethode() {
        ...
    } 
 
    // une méthode abstraite de A
    public abstract void autreMethode (int nombre) ;
}

Bénéfices

  • On peut placer dans une classe abstraite toutes les fonctionnalités dont on souhaite disposer dans ses classes dérivées, sans pour autant définir leur fonctionnement interne;
  • On peut utiliser des classes abstraites pour simplement empêcher qu’une classe ne soit instanciée parce que son existence en tant que classe est uniquement technique et ne repose pas sur le besoin de manipuler l’objet en tant que tel.

Comment les utiliser

Définir la classe abstraite en utilisant le mot-clé "abstract" devant la déclaration de classe.

 

Définir des variables et/ou des méthodes abstraites dans la classe abstraite.

 

Hériter de la classe abstraite dans une classe concrète en utilisant le mot-clé "extends".

 

Implémenter les méthodes abstraites dans la classe concrète en utilisant le mot-clé "override".

Utiliser la classe concrète pour instancier des objets et appeler les méthodes héritées de la classe abstraite.

bloc2/prog/poo/classesabstraites.1680464609.txt.gz · Dernière modification : 2023/04/02 21:43 de yvinec.t