Fermer2
Pen^2Le 09/09/2013 à 23:41
public class A
{
   A()
   {
      func() ;
   }

   void func()
   {
   }
}
public class B
      extends A
{
   B()
   {
      super() ;//appelle le constructeur de A, et donc func, qui se trouve être surchargé ici.
      //mais alors, quel est l'état de booooo ?
      //Ce n'est pas encore true, car l'initialisation de B n'a pas encore eu lieu.
      //En pratique ça a l'air d'être false, mais... C'est juste un hasard, non ?!
      //Sinon ça voudrait dire que booo est initialisé deux fois, d'abord avec la valeur par défaut (false en effet), 
      //puis true explicitement. Or je croyais que l'affectation explicite était similaire aux listes d'initialisations de C++ 
      //et que par conséquent ce n'était initialisé qu'une fois ?!
      //Merci d'avance !
   }

   boolean booooo= true ;
   @Override
   void func()
   {
      System.out.println(booooo) ;
   }


   public static void main( String[] args )
   {
      B b= new B() ;//affiche false apparemment... !!!
      b.func() ;//affiche true, c'est normal
   }
}