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
}
}