Classes abstraites, interfaces et héritage multiple
CHAPITRE 14
296
2.4 Exemple complet
Voici un exemple simple illustrant le polymorphisme d’interfaces. Une interface Affichable comporte une méthode affiche. Deux classes nommées Entier et Réel implémentent cette interface (aucun lien d’héritage n’existe entre elles). On crée un tableau hétérogène
de références de type Affichable qu’on remplit en instanciant des objets de type Entier
ou Réel. En fait, il s’agit d’une transposition du programme 1.4, page 292 qui utilisait des
classes abstraites (transposition qui n’est possible que parce que notre classe abstraite ne
contenait rien d’autre que des méthodes retardées).
interface Affichable
{ méthode affiche
}
classe Entier implémente Affichable
{ méthode Entier (entier n)
{ valeur := n
}
méthode affiche
{ écrire «Je suis un entier de valeur », valeur
}
entier valeur
}
classe Réel implémente Affichable
{ méthode Réel (réel x)
{ valeur := x
}
méthode affiche
{ écrire «Je suis un réel de valeur », valeur
}
réel valeur
}
tableau Affichable [3] tab
entier i
tab [1] := Création Entier (25)
tab [2] := Création Réel (1.25)
tab [3] := Création Entier (42)
répéter pour i := 1 à 3
tab[i].affiche
Je suis un entier de valeur 25
Je suis un réel de valeur 1.25
Je suis un entier de valeur 42
Utilisation de variables de type interface
CHAPITRE 14
296
2.4 Exemple complet
Voici un exemple simple illustrant le polymorphisme d’interfaces. Une interface Affichable comporte une méthode affiche. Deux classes nommées Entier et Réel implémentent cette interface (aucun lien d’héritage n’existe entre elles). On crée un tableau hétérogène
de références de type Affichable qu’on remplit en instanciant des objets de type Entier
ou Réel. En fait, il s’agit d’une transposition du programme 1.4, page 292 qui utilisait des
classes abstraites (transposition qui n’est possible que parce que notre classe abstraite ne
contenait rien d’autre que des méthodes retardées).
interface Affichable
{ méthode affiche
}
classe Entier implémente Affichable
{ méthode Entier (entier n)
{ valeur := n
}
méthode affiche
{ écrire «Je suis un entier de valeur », valeur
}
entier valeur
}
classe Réel implémente Affichable
{ méthode Réel (réel x)
{ valeur := x
}
méthode affiche
{ écrire «Je suis un réel de valeur », valeur
}
réel valeur
}
tableau Affichable [3] tab
entier i
tab [1] := Création Entier (25)
tab [2] := Création Réel (1.25)
tab [3] := Création Entier (42)
répéter pour i := 1 à 3
tab[i].affiche
Je suis un entier de valeur 25
Je suis un réel de valeur 1.25
Je suis un entier de valeur 42
Utilisation de variables de type interface
