Les bases du polymorphisme
275
classs Pointcol dériveDe Point
{ méthode Pointcol (entier x, entier y, entier c)
{ base (x, y)
couleur := c
}
méthode affiche
{ base.affiche
écrire «
et ma couleur est : », couleur
}
entier couleur
}
Je suis en 3 5
Je suis en 4 8
et ma couleur est : 2
Je suis en 5 7
Exemple de polymorphisme appliqué aux classes Point et Pointcol
1.6 Exemple 2
Voici un second exemple de programme complet dans lequel nous exploitons les possibilités
de polymorphisme pour créer un tableau "hétérogène" d’objets, c’est-à-dire dans lequel les
éléments peuvent être de type différent.
tableau Point [4] tabPts
tabPts [1] := Création Point (0, 2)
tabPts [2] := Création Pointcol (1, 5, 3)
tabPts [3] := Création Pointcol (2, 8,9)
tabPts [4] := Création Point (1, 2)
répéter pour i := 1 à 4
tabPts[i].affiche()
classe Point
{ méthode Point (entier x, entier y)
{ abs := x
ord := y
}
méthode affiche
{ écrire «Je suis en : », abs, « », ord
}
entier abs, ord
}
classe Pointcol dériveDe Point
{ méthode Pointcol (entier x, entier y, entier c)
{ base (x, y)
couleur := c
}
275
classs Pointcol dériveDe Point
{ méthode Pointcol (entier x, entier y, entier c)
{ base (x, y)
couleur := c
}
méthode affiche
{ base.affiche
écrire «
et ma couleur est : », couleur
}
entier couleur
}
Je suis en 3 5
Je suis en 4 8
et ma couleur est : 2
Je suis en 5 7
Exemple de polymorphisme appliqué aux classes Point et Pointcol
1.6 Exemple 2
Voici un second exemple de programme complet dans lequel nous exploitons les possibilités
de polymorphisme pour créer un tableau "hétérogène" d’objets, c’est-à-dire dans lequel les
éléments peuvent être de type différent.
tableau Point [4] tabPts
tabPts [1] := Création Point (0, 2)
tabPts [2] := Création Pointcol (1, 5, 3)
tabPts [3] := Création Pointcol (2, 8,9)
tabPts [4] := Création Point (1, 2)
répéter pour i := 1 à 4
tabPts[i].affiche()
classe Point
{ méthode Point (entier x, entier y)
{ abs := x
ord := y
}
méthode affiche
{ écrire «Je suis en : », abs, « », ord
}
entier abs, ord
}
classe Pointcol dériveDe Point
{ méthode Pointcol (entier x, entier y, entier c)
{ base (x, y)
couleur := c
}
