Classe Abstraite

Classe Abstraite

Classe abstraite

En programmation orientée objet (POO), une classe abstraite est une classe dont l'implémentation n'est pas complète et qui n'est pas instanciable. Elle sert de base à d'autres classes dérivées (héritées).

Précision

Le mécanisme des classes abstraites permet de définir des comportements (méthodes) dont l'implémentation (le code dans la méthode) se fait dans les classes filles. Ainsi, on a l'assurance que les classes filles respecteront le contrat défini par la classe mère abstraite. Ce contrat est une interface de programmation.

Prenons l'exemple suivant : vous avez une classe 'Humain', à partir de laquelle dérivent la classe 'Homme' et la classe 'Femme'. En toute logique, 'Homme' et 'Femme' sont instanciables (les objets créés ont une existence en soi), mais la classe 'Humain' sera déclarée abstraite car un objet 'Humain' n'existe pas en tant que tel, puisqu'il manque l'information sur le sexe. Ici, la classe 'Humain' servira à implémenter des méthodes qui seront utilisées à la fois pour 'Homme' et pour 'Femme'.

Classe abstraite dans les langages

En Java, en C#, et en PHP5, le mot clef définissant une classe abstraite est : abstract.

En C++, une classe est abstraite si elle contient au moins une méthode déclarée virtuelle pure, c'est-à-dire commençant par virtual et terminée par = 0. Ce type de classe n'est pas instanciable. On peut néanmoins créer des pointeurs ou des références du type de la classe abstraite qui pointeront ou référenceront des objets d'une classe dérivée non abstraite. Une fonction virtuelle pure doit être définie ou redéclarée explicitement virtuelle pure.

En Pascal les mots clefs abstract ou virtual (les deux existent et sont identiques) sont utilisé dans la déclaration du type classe en fin de ligne afin de préciser quels seront les méthodes virtuelles ou abstraites (par exemple : function Addition(A, B: integer): integer; abstract;).

En Visual basic .Net, une classe est abstraite si elle est précédée de la déclaration MustInherit. Typiquement, cette classe contient au moins une méthode virtuelle pure, déclarée avec MustOverride.

Cas particuliers

Une interface est une classe Java qui ne contient que des méthodes abstraites et n'implémentent aucuns champs (hormis des constantes!), c'est à dire des méthodes sans implémentation. Elle sert de formalisme pour les classes qui implémentent cette dernière. Les méthodes abstraites de l'interface ne sont accessibles qu'à partir des classes qui implémentent l'interface et ces classes doivent les redéfinir en les implémentant.

Une interface (en Java ou Pascal) ou un protocole (en Objective C) sont des classes abstraites sans implémentation. Toutes les méthodes sont abstraites. Seule l'interface de la classe apparaît. Le concept équivalent en C++ est la classe virtuelle pure, où toutes les méthodes sont virtuelles pures.

Un mixin est une classe abstraite qui permet d'ajouter un service à ses sous-classes. En ce sens, il s'apparente plus à un plugin basé sur l'héritage.

Ce document provient de « Classe abstraite ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Classe Abstraite de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Classe abstraite — Sur les autres projets Wikimedia : « Classe abstraite », sur Wikibooks (livres pédagogiques) En programmation orientée objet (POO), une classe abstraite est une classe dont l implémentation n est pas complète et qui n est pas… …   Wikipédia en Français

  • Classe (Informatique) — Pour les articles homonymes, voir Classe. En programmation orientée objet, une classe déclare des propriétés communes à un ensemble d objets. La classe déclare des attributs représentant l état des objets et des méthodes représentant leur… …   Wikipédia en Français

  • Classe Java — Classe (informatique) Pour les articles homonymes, voir Classe. En programmation orientée objet, une classe déclare des propriétés communes à un ensemble d objets. La classe déclare des attributs représentant l état des objets et des méthodes… …   Wikipédia en Français

  • Classe (informatique) — Pour les articles homonymes, voir Classe. En programmation orientée objet, une classe déclare des propriétés communes à un ensemble d objets. La classe déclare des attributs représentant l état des objets et des méthodes représentant leur… …   Wikipédia en Français

  • Classe NP — Théorie de la complexité des algorithmes La théorie de la complexité des algorithmes étudie formellement la difficulté intrinsèque des problèmes algorithmiques. Sommaire 1 Histoire 2 Généralités 2.1 Présentation …   Wikipédia en Français

  • Classe de complexité — Théorie de la complexité des algorithmes La théorie de la complexité des algorithmes étudie formellement la difficulté intrinsèque des problèmes algorithmiques. Sommaire 1 Histoire 2 Généralités 2.1 Présentation …   Wikipédia en Français

  • classe — ● n. f. ►OROBJ Description abstraite des données et du comportement d objets, ces objets étant similaires. Les représentants de la classe sont appelés des instances. (D après © Budd) …   Dictionnaire d'informatique francophone

  • Fabrique Abstraite (Patron De Conception) — La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel. Une fabrique abstraite encapsule un groupe de fabriques ayant une thématique commune. Le code client crée une implémentation concrète de la… …   Wikipédia en Français

  • Fabrique abstraite (Motif de conception) — Fabrique abstraite (patron de conception) La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel. Une fabrique abstraite encapsule un groupe de fabriques ayant une thématique commune. Le code… …   Wikipédia en Français

  • Fabrique abstraite (motif de conception) — Fabrique abstraite (patron de conception) La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel. Une fabrique abstraite encapsule un groupe de fabriques ayant une thématique commune. Le code… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”