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 mot­clé 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
Précédent

- 214/220

Suivant