CARACTÉRISER L’ABSTRACTION POO
Classes et méthodes abstraites
-
- Une classe abstraite est une classe qui contient une ou plusieurs méthodes abstraites. Elle peut malgré tout contenir d'autres méthodes habituelles (appelées parfois méthodes concrètes).
-
- Une méthode abstraite est une méthode qui ne contient pas de corps. Elle possède simplement une signature de définition (pas de bloc d'instructions)
-
- Une classe possédant une ou plusieurs méthodes abstraites devient obligatoirement une classe abstraite.
- Une classe abstraite peut ne pas comporter de méthodes abstraites
Les règles suivantes s'appliquent aux classes abstraites:
-
- Une classe abstraite ne peut pas être instanciée
-
- Une sous-classe d'une classe abstraite ne peut être instanciée que si elle redéfinit chaque méthode abstraite de sa classe parente et qu'elle fournit une implémentation(un corps) pour chacune des méthodes abstraites.
- Si une sous-classe d'une classe abstraite n'implémente pas toutes les méthodes abstraites dont elle hérite,
cette sous-classe est elle-même abstraite (et ne peut donc pas être instanciée)
Utilité des classes abstraites
-
- les classes abstraites permettent de définir des fonctionnalités(des comportements) que les sous-classes devront impérativement implémenter
-
- Les utilisateurs des sous-classes d'une classe abstraite sont donc assurés de trouver toutes les méthodes définies dans la classe abstraite dans chacune des sous-classes concrètes
- Les classes abstraites constituent donc une sorte de contrat (spécification contraignante) qui garantit que certaines méthodes seront disponibles dans les sous-classes et qui oblige les programmeurs à les implémenter dans toutes les sous-classes concrètes.
Interface
Principe d’interface
-
- Comme une classe et une classe abstraite, une interface permet de définir un nouveau type (référence).
-
- Une interface est une forme particulière de classe où toutes les méthodes sont abstraites
-
- Lorsqu'une classe implémente une interface, elle indique ainsi qu'elle s'engage à fournir une implémentation (c'est-à-dire un corps) pour chacune des méthodes abstraites de cette interface.
- Si une classe implémente plus d'une interface, elle doit implémenter toutes les méthodes abstraites de
chacune des interfaces.
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.