next up previous
suivant: Les exceptions monter: Architecture d'une application Java précédent: L'héritage

Liaison dynamique et polymorphisme

Définition 4.3   surcharge : dans une classe, un même nom est utilisé pour différents attributs où différentes méthodes (les signatures doivent différées).

Définition 4.4   redéfinition : dans une sous-classe, l'implantation d'une méthode est changée (spécialisée).

class C {
  int x;

  int ajouter(int a){return x+a;}
  void ajouter(int a){x = x+a;}			//surcharge
  void ajouter(int a; int b){x = x+a+b;}        //surcharge
}
class SC extends C {
  float x;                                           //surcharge
  void ajouter(int a; int b){ajouter(a+2*b);}        //redéfinition
  void ajouter(int a; int b; int c){ajouter(a+b,c);} //surcharge
}

Pour les attributs : la surcharge est interdite dans une classe et permise dans les sous-classes, la redéfinition n'a pas de sens.

Pour les méthodes : la surcharge est permise dans la classe et les sous-classes, la redéfinition est interdite dans la classe et permise dans les sous-classes.



Alain Griffault 2002-10-22