Next: Sous-typage
Up: Liaison tardive
Previous: Redéfinition
De façon générale, l'évaluation d'une invocation de méthode, de la forme
cible.m(arg1, ...), s'effectue en plusieurs étapes :
- 1.
- le type (classe ou interface) t qui doit avoir une méthode
m parmi ses membres est déterminé comme le type de
l'expression cible (et non le type de sa valeur) ;
- 2.
- le type des arguments détermine les méthodes candidates parmi les
méthodes de nom m de t ;
- 3.
- s'il y a plusieurs méthodes candidates (cas de surcharge),
l'une d'entre-elles est sélectionnée comme étant la plus spécifique,
si elle existe ;
- 4.
- l'évaluation de l'expression cible produit une référence
à une instance d'une classe C qui est nécessairement un sous-type de
t ;
- 5.
- l'évaluation des arguments arg1,
... produit des valeurs v1,...(le type de ces valeurs
n'intervient pas) ;
- 6.
- la liaison tardive détermine la méthode qui sera invoquée
comme étant la méthode sélectionnée si elle n'est pas redéfinie, ou
sinon comme la redéfinition de la méthode sélectionnée qui est héritée
par la classe C;
- 7.
- les valeurs des arguments sont éventuellement convertis en des
valeurs du type des paramètres de la méthode déterminée par la liaison
tardive ;
- 8.
- la création d'un cadre d'invocation de cette méthode, appliquée à
l'instance obtenue, avec les arguments évalués.
Next: Sous-typage
Up: Liaison tardive
Previous: Redéfinition
R. Lalement
2000-10-23