next up previous contents index
suivant: Réaliser une interface monter: Abstraction et sous-typage précédent: Abstraction et sous-typage   Table des matières   Index


Interfaces

Java offre en effet à côté des classes une autre catégorie de types, les interfaces. Rappelons que les classes de Java ont trois rôles :
  1. de typage, au sens usuel, ce qui permet de déclarer des noms d'un certain type et de vérifier que les expressions où ils apparaissent sont correctement typées ;
  2. de définition du comportement des objets, en définissant des méthodes ;
  3. de moule, pour construire leurs instances.
Les interfaces ne remplissent que le premier de ces trois rôles : ce sont des types abstraits au sens où elles ne définissent aucune méthode et ne comportent pas de constructeur : une interface déclare uniquement des méthodes publiques, le corps de la méthode étant remplacé par un « ; ». On ne peut pas créer un objet d'un type abstrait : une interface n'a pas d'instance, l'expression new Forme() n'est pas correcte.

Pour faire de Point, Cercle et Rectangle des sous-types de Forme, il suffit de déclarer qu'ils réalisent (ou implémentent) l'interface Forme, au moyen du mot-clé implements :

class Cercle implements Forme { ... }
class Point implements Forme { ... }
class Rectangle implements Forme { ... }

On dit parfois que ces trois classes sont des types concrets pour les distinguer des types abstraits. Le mot-clé implements peut être suivi de plusieurs noms d'interfaces ; la classe est alors considérée comme un sous-type de chacune de ces interfaces.


next up previous contents index
suivant: Réaliser une interface monter: Abstraction et sous-typage précédent: Abstraction et sous-typage   Table des matières   Index
Rene' LALEMENT 2002-11-07