next up previous contents index
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, ...) :

  1. 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) ;
  2. 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 ;
  3. 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) ;
  4. 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 ;
  5. l'évaluation des arguments arg22#22, ... produit des valeurs 221#221,...(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 définie ou héritée par la classe 16#16 ;
  7. un cadre d'invocation est créé ;
  8. 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.


next up previous contents index
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