Contexte : quel est le problème ?
En entreprise, un projet est généralement développé en équipe et sur parfois sur plusieurs mois / années avec maintenance.
Un développeur doit donc prévoir que ses programmes seront utilisés par quelqu’un d’autre que lui-même.
C’est par exemple le cas du JDK (environ 1000 classes qui sont utilisées par XX développeurs Java).
Classes abstraites
Définition
Une classe abstraite est une classe dans laquelle au moins une méthode n’est pas implémentée (cad n’a pas d’instructions).
Utilisation
Utiliser le mot-clé abstract devant le mot-clé class.
Pour les méthodes qui ne sont pas implémentées, spécifier juste leur entête.
But d’une classe abstraite
Une classe abstraite permet de définir les caractéristiques communes à plusieurs classes.
Une classe abstraite permet à un développeur :
– de fournir à d’autres développeurs une partie de l’implémentation d’une classe
– de laisser aux autres développeurs la manière d’implémenter le reste de la classe
– d’imposer aux autres développeurs d’implémenter certaines méthodes s’ils veulent pouvoir utiliser ses classes
Interface
Définition
Une interface est une spécification complètement abstraite : aucune méthode n’est implémentée.
Une interface ne comporte que des constantes et des méthodes abstraites.
ATTENTION: le terme « interface » n’a rien à voir ici avec les « interfaces graphiques »
Utilisation
Une classe qui implémente une interface doit définir le corps (les instructions) de toutes ses méthodes abstraites.
Le mot-clef implements permet de rendre une classe conforme à une interface particulière (ou à un groupe d’interfaces).
«L’interface spécifie ce à quoi la classe ressemble, mais maintenant on va spécifier comment cela fonctionne».
…