cs_limalima
Messages postés124Date d'inscriptiondimanche 31 août 2008StatutMembreDernière intervention16 décembre 2010
-
1 mai 2009 à 23:07
Utilisateur anonyme -
4 mai 2009 à 11:39
J'ai prélevé ce code sur un sujet de la certificatio sun,
--------------------------------------------------------
class
NoGo{
int i= 0;
NoGo(){ add(1);
System.
out .println(
i);
}
void add(
int v){
i =
i+v;
}
void print(){System.out.println(i);
}
}
-----------------------------------------------------------------------------------
class
}-----------------------------------------------------------------------------------
alors ici, l'affichage est 22, je ne comprends pas pourquoi!!
car si on regarde la classe TestNoGo,
on new Extension():mais c'est d'abord le constructeur de la classe mere(NoGo)qui sera executer et donc
la methode add(1) et du coup i vaut 1.
vient ensuite le constructeur fille(Extension) et la methode add(2) est appelée et i vaut alors 5
et a lfin la methde bogo() est appelée et a son tour appelle la methde add(8) de la classe Extension et i vaut alors 21
j'espère que j'été claire et que vous m'expliqueriez, merci