Classes abstraites, interfaces et héritage multiple
CHAPITRE 14
292
Ces possibilités pourront par exemple être employées dans la réalisation d’un programme
manipulant des figures géométriques, se basant sur une « hiérarchie d’héritage » ressemblant
à ceci :
Les classes Ligne et Surface pourraient éventuellement rester abstraites, tout en introduisant de nouvelles méthodes retardées, par exemple styleTrait pour Ligne ou motifPeinture pour Surface. Les classes dérivées de Ligne devraient, quant à elles, redéfinir
convenablement les méthodes dessine et styleTrait ; celles dérivées de Surface
devraient redéfinir dessine et motifPeinture.
1.4 Exemple
Voici un exemple de programme illustrant l’emploi d’une classe abstraite nommée
Affichable, dotée d’une seule méthode retardée affiche. Deux classes Entier et Réel
dérivent de cette classe. Le programme utilise un tableau hétérogène d’objets de type
Affichable qu’il remplit en instanciant des objets de type Entier et Réel.
classe abstraite Affichable
{ méthode retardée affiche
}
classe Entier dériveDe Affichable
{ méthode Entier (entier n)
{ valeur := n
}
méthode affiche
{ écrire «Je suis un entier de valeur », valeur
}
entier valeur
}
classe Réel dériveDe Affichable
{ méthode Réel (réel x)
{ valeur := x
}
Figure
Ligne
Surface
Segment
Cercle
Rectangle
Disque
Précédent

- 315/370

Suivant