Aller au contenu

Interfaces

Les interfaces définissent des contrats que les classes doivent respecter.

Déclaration

interface Affichable
    fonction vers_texte(): texte
fin

interface Comparable<T>
    fonction comparer(autre: T): entier
fin

Implémentation

Une classe implémente une interface avec implémente :

classe Point implémente Affichable
    publique x: décimal
    publique y: décimal

    constructeur(x: décimal, y: décimal)
        ceci.x = x
        ceci.y = y
    fin

    publique fonction vers_texte(): texte
        retourne "(" + ceci.x comme texte + ", " + ceci.y comme texte + ")"
    fin
fin

Implémentation multiple

Une classe peut implémenter plusieurs interfaces :

classe Nombre implémente Affichable, Comparable<Nombre>
    publique valeur: décimal

    constructeur(v: décimal)
        ceci.valeur = v
    fin

    publique fonction vers_texte(): texte
        retourne ceci.valeur comme texte
    fin

    publique fonction comparer(autre: Nombre): entier
        si ceci.valeur < autre.valeur alors
            retourne -1
        sinonsi ceci.valeur > autre.valeur alors
            retourne 1
        sinon
            retourne 0
        fin
    fin
fin

Interface comme type

Les interfaces peuvent être utilisées comme types pour les paramètres et les variables :

fonction afficher_tous(éléments: liste<Affichable>)
    pour élément dans éléments faire
        afficher(élément.vers_texte())
    fin
fin

Interface avec méthodes par défaut

interface Sérialisable
    fonction sérialiser(): texte

    fonction descriptif(): texte
        retourne "Donnée sérialisable : " + ceci.sérialiser()
    fin
fin

Résumé des mots-clés

Mot-clé Usage
interface Déclarer une interface
implémente Implémenter une ou plusieurs interfaces
abstraite Méthode devant être implémentée