Vous êtes sur la page 1sur 1

nous reviendrons plus en détail sur ce sujet dans les chapitres suivants, mais

évoquons déjà très succinctement la


notion d’interface, très importante en orienté objet. Une interface est composée
uniquement d’un nom et d’un
ensemble de signatures de méthodes, y compris le type de retour associé à chaque
signature. P ar exemple,
l’interface Vehicule pourrait définir la méthode void changeVitesse(int nv). Une
interface ne contient aucune
information d’implémentation de ses signatures.
Si une classe déclare qu’elle implémente une interface, elle est obligée de fournir
un code pour chacune des
méthodes définies par l’interface. P ar exemple, si la classe Voiture implémente
l’interface Vehicule, il faut (sous
peine d’erreur de compilation) qu’elle définisse une méthode void changeVitesse(int
nv). Le détail du code de
cette méthode n’est pas contraint par l’interface et la classe Voiture peut
contenir autant d’autres méthodes
qu’elle le souhaite, sauf des méthodes dont la signature se trouve dans l’interface
mais dont le type de retour serait
différent.
Notons que tant les interfaces que les classes sont deux types possibles. Le type
d’une variable ou d’un attribut
pourra être un type primitif, une classe ou une interface. En orienté objet, il est
préférable de typer les variables
par des interfaces plutôt que par des classes.
Le compilateur vérifie que les variables typées par une interface ne réfèrent qu’à
des objets qui l’implémentent.
P ar exemple, pour une variable de type Vehicule, le compilateur vérifie qu’on
n’affecte rien d’autre que des
objets implémentant Vehicule, tels ceux issus des classes Voiture, Velo ou Camion.
De plus, le compilateur vérifie que seules des méthodes appartenant à l’interface
sont appelées sur les variables
typées par cette dernière. P ar exemple, pour une variable de type Vehicule, le
compilateur acceptera la méthode
changeVitesse(int) mais pas changeCouleur().
En substance, les interfaces constituent les modes d’emploi de tous les objets
issus des classes qui implémentent
cette interface, modes d’emploi dont on pourra informer toute autre classe désirant
interagir avec celles
implémentant cette interface.

Vous aimerez peut-être aussi