Next: Modèles (super classes abstraites) Up: Classes Previous: Héritage des méthodes

Recouvrement d'un méthode par une autre

Une exception fondamentale au mécanisme d'héritage: Dans une nouvelle classe vous définissez une méthode qui a le même nom qu'une méthode définie dans une super-classe. Cette nouvelle méthode recouvre l'original, c'est-à-dire que les objets de cette nouvelle classe utiliserons la nouvelle méthode, plutôt que l'original.

La méthode originale est toujours accessible par un appel spécifique (voir "Messages à self et super").

La méthode redéfinie peut elle même appeler l'original. Ainsi la nouvelle version ne fait que rajouter des fonctionnalités à la méthode, au lieu de la remplacer en entier. Ainsi l'implémentation d'une méthode pourra se trouver distribuée sur un ensemble de classes (exemple: free).

A l'inverse il n'est pas possible de recouvrir des variables d'instances (le compilateur refusera), en effet, la création d'un objet passe par l'allocation d'une structure dans laquel les positions des différentes varaibles d'instances est fixé, du fait de l'inclusion de types définis par les classes, il n'est pas possible dans une sous classe de déplacer ou enlever un des champs de la structure.



Dominique REVUZ
Vendredi 21 février 1997 17:27:12
Une Bug Un mail Merci