Table des matières

Les interfaces

Principes

Si on considère une classe abstraite qui ne décrit que des méthodes abstraites (aucun attribut, aucune méthode implémentée), on aboutit à la notion d’interface.

Une interface décrit les signatures d’un certain nombre de méthodes, et possiblement aussi de constantes, dont on souhaite imposer l’existence dans certaines classes ;

Exemple :

// une interface IMovable qui décrit les comportements d'un objet déplaçable
public interface IMovable {
   public void moveTo (Point position);
   public void moveTo (int x_position, int y_position);
}

Usage :

// En implémentant l’interface IMovable, la classe Rectangle doit nécessairement 
// implémenter et définir le contenu des méthodes inscrites dans l’interface IMovable
public class Rectangle implements IMovable {
   public void moveTo (Point position) {
     ...
   }
   public void moveTo (int x_position, int y_position) {
     ...
   }
}

Cela ressemble beaucoup à une hybridation entre :

Pourtant, ce n’est ni vraiment l’un, ni vraiment l’autre.

Règles de construction et conventions de nommage

Bénéfices

Exemple : en Java, typer une donnée List (qui est une Interface disponible dans le JDK) permet d’accepter différentes sortes de collections (celles qui implémentent List) et de les traiter indistinctement par le fait que les fonctionnalités de base de ces collections sont les mêmes.

Illustrations : API Java

Les Classes abstraites et interfaces sont largement employées dans la conception des bibliothèques graphiques (les composants graphiques SWING, par exemple) et des bibliothèques de classes techniques (les collections, par exemple).