suivant: Sous-typage
monter: Liaison tardive
précédent: Spécialisation d'une classe par
  Table des matières
  Index
Évaluation d'une invocation
En combinant différents mécanismes de Java (typage statique, résolution
de la surcharge, liaison tardive), nous pouvons maintenant décrire les
différentes étapes de l'invocation d'une méthode de la forme
cible.m(arg22#22, ...) :
- le type (classe ou interface) 13#13 qui doit avoir une méthode
m parmi ses membres est déterminé comme le type de
l'expression cible (typage statique, le type de sa valeur
n'intervient pas à cette étape) ;
- le type des expressions arguments détermine les méthodes
candidates parmi les méthodes de nom m de 13#13 ayant un profil
compatible avec les types des arguments ;
- s'il y a plusieurs méthodes candidates,
l'une d'entre-elles est sélectionnée comme étant la plus spécifique,
si elle existe (résolution de la surcharge) ;
- l'évaluation de l'expression cible produit une référence
à une instance d'une classe 16#16 qui est nécessairement un sous-type de
13#13 ;
- l'évaluation des arguments arg22#22,
... produit des valeurs 221#221,...(le type de ces valeurs
n'intervient pas) ;
- 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 définie
ou héritée par la classe 16#16 ;
- un cadre d'invocation est créé ;
- les valeurs des arguments sont éventuellement converties en des
valeurs du type des paramètres de la méthode déterminée à l'étape 6 et
servent à initialiser les paramètres de la méthode.
suivant: Sous-typage
monter: Liaison tardive
précédent: Spécialisation d'une classe par
  Table des matières
  Index
Rene' LALEMENT
2002-11-07