next up previous contents index
Next: Une discipline d'abstraction Up: Interfaces Previous: Interfaces

     
Extension d'une interface

Comme pour les classes, il y a une notion de sous-interface et d'héritage. Comme une interface déclare des méthodes, étendre une interface permet de déclarer des méthodes supplémentaires. Ceci se fait également au moyen du mot-clé extends :

interface I1 { ... }
interface I2 extends I1 { ... }

        On dit alors que I2 est une sous-interface directe de I1, ou qu'elle dérive de I1, et que I1 est une sur-interface directe de I2. L'effet de cette extension est que les déclarations de méthodes de I1 sont héritées par I23.2.

Une sous-interface d'une interface est considérée comme un sous-type de cette interface, ce qui permet d'utiliser une expression disposant de méthodes supplémentaires, là où seulement certaines de ces méthodes sont requises ; les affectations suivantes sont donc correctes :

    I2 y = ...;
    I1 x = y;
Dans ce cas, seules les méthodes déclarées par I1 pourront être invoquées sur x, alors que l'objet désigné par x implémente probablement d'autres méthodes. On dispose ainsi d'une notion d'abstraction graduelle.



R. Lalement
2000-10-23