q Ne contenant que des méthodes abstraites.
Ainsi toute classe dérivant de cette classe spéciale devrait obligatoirement implémenter toutes les méthodes. Quel est
l’intérêt ? Celui de définir un modèle unique et complet de méthodes pour les classes qui décident de les utiliser.
Ces types particuliers de classes s’appellent des interfaces. En pratique une classe n’hérite pas d’une interface : mis à
part les définitions des méthodes une interface ne contient pas de code. Pour déclarer une classe, vous utilisez le motclé Interface à la place de classe. Par exemple, vous voulez créer une interface qui déclare toutes les méthodes de
base pour la lecture d’un fichier multimédia : lecture, pause, stop, avance rapide, retour rapide, piste précédente, piste
suivante. L’interface ressemblerait à ceci (les paramètres des méthodes ne sont ici pas précisés):
Interface lecture
méthodes publiques
Procédure lecture() ;
Procédure pause() ;
Procédure stop() ;
Procédure avance() ;
Procédure retour() ;
Procédure précédent() ;
Procédure suivant() ;
FinInterface
Notez bien qu’une interface ne contient QUE des méthodes et rien d’autre.
On dit qu’une classe qui décide d’utiliser une interface implémente les méthodes de l’interface, donc implémente
l’interface. Vous utilisez ce même motclé pour le préciser.
Classe titi implémente interface
Vous pouvez décider d’implémenter plusieurs interfaces au sein de votre classe, dans ce cas vous séparez les noms
des interfaces par des virgules.
Classe titi implémente interface1, interface2, interfacen
Vous devez implémenter toutes les méthodes de l’interface dans la classe. Si vous ne le faites pas, la méthode qui
n’est pas implémentée doit être déclarée abstraite, et la classe devient abstraite, donc non instanciable.
La classe Musique récupère l’interface lecture :
Classe Musique implémente lecture
attributs privés
morceau :chaîne
piste :chaîne
position : entier
duree : entier
méthodes publiques
Constructeur Musique(m,p :chaînes)
Début
this.morceau←morceau
this.piste←p
position←0
// Méthode de calcul :durée du morceau en secondes
duree←duree_morceau(morceau)
Fin
// Début d’implémentation de l’interface
Procédure lecture()
Début
...
FinProc
Procédure pause()
Début
...
Fin
Procédure stop()
Début
...
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
214
Ainsi toute classe dérivant de cette classe spéciale devrait obligatoirement implémenter toutes les méthodes. Quel est
l’intérêt ? Celui de définir un modèle unique et complet de méthodes pour les classes qui décident de les utiliser.
Ces types particuliers de classes s’appellent des interfaces. En pratique une classe n’hérite pas d’une interface : mis à
part les définitions des méthodes une interface ne contient pas de code. Pour déclarer une classe, vous utilisez le motclé Interface à la place de classe. Par exemple, vous voulez créer une interface qui déclare toutes les méthodes de
base pour la lecture d’un fichier multimédia : lecture, pause, stop, avance rapide, retour rapide, piste précédente, piste
suivante. L’interface ressemblerait à ceci (les paramètres des méthodes ne sont ici pas précisés):
Interface lecture
méthodes publiques
Procédure lecture() ;
Procédure pause() ;
Procédure stop() ;
Procédure avance() ;
Procédure retour() ;
Procédure précédent() ;
Procédure suivant() ;
FinInterface
Notez bien qu’une interface ne contient QUE des méthodes et rien d’autre.
On dit qu’une classe qui décide d’utiliser une interface implémente les méthodes de l’interface, donc implémente
l’interface. Vous utilisez ce même motclé pour le préciser.
Classe titi implémente interface
Vous pouvez décider d’implémenter plusieurs interfaces au sein de votre classe, dans ce cas vous séparez les noms
des interfaces par des virgules.
Classe titi implémente interface1, interface2, interfacen
Vous devez implémenter toutes les méthodes de l’interface dans la classe. Si vous ne le faites pas, la méthode qui
n’est pas implémentée doit être déclarée abstraite, et la classe devient abstraite, donc non instanciable.
La classe Musique récupère l’interface lecture :
Classe Musique implémente lecture
attributs privés
morceau :chaîne
piste :chaîne
position : entier
duree : entier
méthodes publiques
Constructeur Musique(m,p :chaînes)
Début
this.morceau←morceau
this.piste←p
position←0
// Méthode de calcul :durée du morceau en secondes
duree←duree_morceau(morceau)
Fin
// Début d’implémentation de l’interface
Procédure lecture()
Début
...
FinProc
Procédure pause()
Début
...
Fin
Procédure stop()
Début
...
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
214
