Les interfaces

On utilise les interfaces pour declarer une facon unifiee d'acceder a des informations. Les membres des interfaces (les methodes) ne sont pas implementes : ils sont declares en abstract. Les interfaces sont egalement un moyen de contourner le fait que JAVA n'autorise pas les heritages multiples.

Une interface pourra etre l'extension d'une autre interface (cela sera indique syntaxiquement par le mot cle extends). Une classe implementera donc une interface donnee (indique par le mot cle implements).

Programme interface (premier fichier.java) :
// interface de depart : 4 constantes 

interface Rouge_vert_bleu 

{ /* les constantes, par defaut public static final */ 

    int R=1, V=8, B=16, OFFSET=255 ; 
}

// extension de la premiere interface

interface Rvb_etendu extends Rouge_vert_bleu 

    int set_couleur(int r, int v, int b) ; 

    /* doit calculer une valeur a partir de r, v, b*/ 

}
Programme implementant l'interface (second fichier.java):
class Rvb implements Rvb_etendu 

    /* implemente set_couleur */ 
    public int set_couleur(int r, int v, int b) 

      return (r*Rvb_etendu.R*Rvb_etendu.OFFSET 

      + v*Rvb_etendu.V*Rvb_etendu.OFFSET 

      + b*Rvb_etendu.B*Rvb_etendu.OFFSET) ; 

    }

    public static void main(String[] args) 

    { ma_couleur coul=new ma_couleur() ; coul.travaille() ; }

}

class ma_couleur 

    Rvb rgb ;

    /* constructeur */

    ma_couleur() 

    { rgb = new Rvb() ; }

    public void travaille() 

      System.out.println("Le resultat de "+10+","+10+","+10+" est "+rgb.set_couleur(10,10,10)) ; 
}

Resultat de l'execution (java Rvb):
Le resultat de 10,10,10 est 61210


Ph. RIS 1997