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