méthodes publiques
Procédure mouvement()
Début
Afficher "Mouvement de Tour"
FinProc
...
FinClasse
Quand vous allez déclarer un objet de type tour et que vous allez accéder à la méthode mouvement(), c’est la
méthode mouvement() de Pièce qui va être appelée et c’est donc le message correspondant "Mouvement de Tour"
qui s’affiche.
Programme obj5
var
matour1 :Tour
Début
...
// Appel de mouvement() de l’objet matour1
matour1.mouvement()
Fin
Vous pouvez explicitement faire appel à la méthode de la superclasse Pièce dont Tour dérive à l’aide du motclé super
(pour superclasse) au sein de la ou des méthodes concernées. Dans l’exemple suivant la méthode mouvement() de la
classe Tour a été modifiée pour appeler la méthode mouvement() de Pièce. À l’issue de ce programme, les deux
messages sont affichés, d’abord celui pour Pièce, puis celui pour Tour.
Classe Tour hérite de Pièce
...
méthodes publiques
Procédure mouvement()
Début
// Appel de mouvement() de Pièce
super.mouvement()
Afficher "Mouvement de Tour"
FinProc
...
FinClasse
Programme obj6
var
matour1 :Tour
Début
...
// Appel de mouvement() de l’objet matour1
matour1.mouvement()
Fin
Note : en cas d’héritage en cascade, le motclé super se rapporte à la classe mère, c’estàdire celle dont
dérive directement la classe fille. Pour remonter toute la hiérarchie des classes, vous devez utiliser le motclé
super dans toutes les méthodes de toutes les classes précédentes, en cascade.
d. Le polymorphisme paramétrique
Chaque méthode au sein d’une classe dispose d’une signature particulière. Cette signature est constituée du nom de
la méthode, des paramètres qu’elle prend et de la valeur qu’elle retourne. Le langage objet se base sur cette
signature pour appeler la bonne méthode.
Le principe de l’objet indique qu’il suffit qu’un seul de ces trois constituants de la signature varie pour que la méthode
soit considérée comme différente. Vous pouvez faire par exemple varier le type de variable retournée par la méthode,
et aussi les paramètres, mais pas le nom de celleci ? Voyezvous les implications directes ? Vous avez le droit de
donner le même nom à plusieurs méthodes à condition que le nombre ou les types des paramètres de cellesci ne
soient pas identiques.
Soit une classe calcul qui redéfinit des opérations sur divers types de variables : entiers, réels, mais aussi chaînes de
caractères pour les concaténer par exemple. Dans cette classe, vous voulez que quand vous appelez la méthode
addition(), l’addition des deux valeurs passées en paramètres soit effectuée, sans se soucier de leur type. Cela ne
représente aucun problème. L’exemple suivant implémente ces trois méthodes, et le programme principal y fait appel.
- 13 -
© ENI Editions - All rigths reserved - Jonifar lina
206
Procédure mouvement()
Début
Afficher "Mouvement de Tour"
FinProc
...
FinClasse
Quand vous allez déclarer un objet de type tour et que vous allez accéder à la méthode mouvement(), c’est la
méthode mouvement() de Pièce qui va être appelée et c’est donc le message correspondant "Mouvement de Tour"
qui s’affiche.
Programme obj5
var
matour1 :Tour
Début
...
// Appel de mouvement() de l’objet matour1
matour1.mouvement()
Fin
Vous pouvez explicitement faire appel à la méthode de la superclasse Pièce dont Tour dérive à l’aide du motclé super
(pour superclasse) au sein de la ou des méthodes concernées. Dans l’exemple suivant la méthode mouvement() de la
classe Tour a été modifiée pour appeler la méthode mouvement() de Pièce. À l’issue de ce programme, les deux
messages sont affichés, d’abord celui pour Pièce, puis celui pour Tour.
Classe Tour hérite de Pièce
...
méthodes publiques
Procédure mouvement()
Début
// Appel de mouvement() de Pièce
super.mouvement()
Afficher "Mouvement de Tour"
FinProc
...
FinClasse
Programme obj6
var
matour1 :Tour
Début
...
// Appel de mouvement() de l’objet matour1
matour1.mouvement()
Fin
Note : en cas d’héritage en cascade, le motclé super se rapporte à la classe mère, c’estàdire celle dont
dérive directement la classe fille. Pour remonter toute la hiérarchie des classes, vous devez utiliser le motclé
super dans toutes les méthodes de toutes les classes précédentes, en cascade.
d. Le polymorphisme paramétrique
Chaque méthode au sein d’une classe dispose d’une signature particulière. Cette signature est constituée du nom de
la méthode, des paramètres qu’elle prend et de la valeur qu’elle retourne. Le langage objet se base sur cette
signature pour appeler la bonne méthode.
Le principe de l’objet indique qu’il suffit qu’un seul de ces trois constituants de la signature varie pour que la méthode
soit considérée comme différente. Vous pouvez faire par exemple varier le type de variable retournée par la méthode,
et aussi les paramètres, mais pas le nom de celleci ? Voyezvous les implications directes ? Vous avez le droit de
donner le même nom à plusieurs méthodes à condition que le nombre ou les types des paramètres de cellesci ne
soient pas identiques.
Soit une classe calcul qui redéfinit des opérations sur divers types de variables : entiers, réels, mais aussi chaînes de
caractères pour les concaténer par exemple. Dans cette classe, vous voulez que quand vous appelez la méthode
addition(), l’addition des deux valeurs passées en paramètres soit effectuée, sans se soucier de leur type. Cela ne
représente aucun problème. L’exemple suivant implémente ces trois méthodes, et le programme principal y fait appel.
- 13 -
© ENI Editions - All rigths reserved - Jonifar lina
206
