J'ai deux classes Parent et Child
public class Parent {
public Parent() {
System.out.println("Constructeur Parent");
}
static {
System.out.println("Bloc statique Parent");
}
{
System.out.println("Bloc d'initialisation Parent");
}
}
public class Child extends Parent {
{
System.out.println("Bloc d'initialisation enfant");
}
static {
System.out.println("Bloc statique enfant");
}
public Child() {
System.out.println("Constructeur enfant");
}
public static void main(String[] args) {
new Child();
}
}
La sortie du code ci-dessus sera
Bloc statique Parent
Bloc statique enfant
Bloc d'initialisation Parent
Constructeur Parent
Bloc d'initialisation enfant
Constructeur enfant
Pourquoi Java exécute-t-il le code dans cet ordre? Quelles sont les règles qui déterminent l'ordre d'exécution?