< Programmation < Programmation orientée objet

Classe abstraite

Une classe abstraite est une classe possédant des méthodes abstraites.

Une méthode abstraite ne possède pas d'implémentation, mais est utilisée par la classe elle-même ou une autre classe. Il n'est pas possible de créer et d'utiliser une instance directe d'une classe abstraite. Il faut utiliser une sous-classe qui implémente toutes les méthodes abstraites.

Interface

Une interface ne contient que des méthodes abstraites. Comme une classe abstraite, il n'est pas possible de créer et d'utiliser une instance directe d'une interface. Il faut utiliser une classe qui implémente cette interface, c'est à dire toutes les méthodes abstraites de celle-ci.

Différence

La différence entre classe abstraite et interface peut ne pas être évidente au premier abord.

Afin de bien concevoir un modèle objet, voici les principales différences :

  • Dans une classe abstraite, il est possible d'avoir des méthodes concrètes qui implémentent des fonctionnalités générales ou communes,
  • Dans certains langages de programmation où le nombre de classes mères d'une sous-classe est limité (Java, par exemple, n'autorise qu'une seule classe mère), l'implémentation d'une classe abstraite impose d'hériter de cette classe, alors qu'il est généralement possible d'implémenter plusieurs interfaces dans une classe.

Exemples

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.