Redéfinition de méthodes
261
Pointcol pc
pc := Création (Pointcol(3, 5, 3)
pc.affiche
// ici, il s’agit de affiche de Pointcol
pc.deplace (1, -3)
pc.affiche()
Je suis en 3 5
et ma couleur est : 3
Je suis en 4 2
et ma couleur est : 3
Exemple de redéfinition de la méthode affiche dans une classe dérivée Pointcol
Remarques
1 Une redéfinition de méthode n’entraîne pas nécessairement comme ici l’appel par base
de la méthode correspondante de la classe de base.
2 Notez bien que la redéfinition d’une méthode ne concerne que les objets d’une classe
dérivée. Les objets de la classe de base continuent à utiliser la méthode d’origine.
6.3 La redéfinition d’une manière générale
Ici, nous avons considéré un exemple simple : la méthode affiche ne possédait aucun paramètre et aucun résultat. Examinons maintenant des situations plus générales :
classe Point
{ .....
méthode déplace (entier dx, entier dy) { ..... }
.....
}
classe Pointcol dériveDe Point
{ .....
méthode déplace (entier dx, entier dy) { ..... }
.....
}
Ici, la méthode déplace de Pointcol redéfinit la méthode parente. Elle est tout naturellement utilisée pour un objet de ce type, mais pas pour un objet de type Point :
Point p
Pointcol pc
.....
p.déplace (3, 5)
// appelle la méthode déplace de Point
pc.déplace (4, 8) // appelle la méthode déplace de Pointcol
En revanche, considérons cette situation (sans trop nous interroger sur la signifcation du
déplacement d’un point coloré !) :
261
Pointcol pc
pc := Création (Pointcol(3, 5, 3)
pc.affiche
// ici, il s’agit de affiche de Pointcol
pc.deplace (1, -3)
pc.affiche()
Je suis en 3 5
et ma couleur est : 3
Je suis en 4 2
et ma couleur est : 3
Exemple de redéfinition de la méthode affiche dans une classe dérivée Pointcol
Remarques
1 Une redéfinition de méthode n’entraîne pas nécessairement comme ici l’appel par base
de la méthode correspondante de la classe de base.
2 Notez bien que la redéfinition d’une méthode ne concerne que les objets d’une classe
dérivée. Les objets de la classe de base continuent à utiliser la méthode d’origine.
6.3 La redéfinition d’une manière générale
Ici, nous avons considéré un exemple simple : la méthode affiche ne possédait aucun paramètre et aucun résultat. Examinons maintenant des situations plus générales :
classe Point
{ .....
méthode déplace (entier dx, entier dy) { ..... }
.....
}
classe Pointcol dériveDe Point
{ .....
méthode déplace (entier dx, entier dy) { ..... }
.....
}
Ici, la méthode déplace de Pointcol redéfinit la méthode parente. Elle est tout naturellement utilisée pour un objet de ce type, mais pas pour un objet de type Point :
Point p
Pointcol pc
.....
p.déplace (3, 5)
// appelle la méthode déplace de Point
pc.déplace (4, 8) // appelle la méthode déplace de Pointcol
En revanche, considérons cette situation (sans trop nous interroger sur la signifcation du
déplacement d’un point coloré !) :
