Invocation automatique de methode static
Bonsoir,
En adaptant un exo trouve sur ce site, j'ai ecrit le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Mammifere {
static { System.out.println("Creation d'un mammifere");}
public Mammifere(){
System.out.println("Je suis un mammifere");
}
static { System.out.println("Creation terminee");}
}
public class Homme extends Mammifere {
public Homme(){
System.out.println("Je suis un homme");
}
public static void main(String[] args) {
System.out.println("Un fils va nous etre donne");
Homme h = new Homme();
System.out.println("Un nouvel homme est ne");
}
} |
La sortie est la suivante:
Code:
1 2 3 4 5 6 7 8
| nuriel@serenity:$ javac Homme.java
nuriel@serenity:$ java Homme
Creation d'un mammifere
Creation terminee
Un fils va nous etre donne
Je suis un mammifere
Je suis un homme
Un nouvel homme est ne |
En ne donnant pas de nom aux methodes statiques, elles sont appelees d'office, et avant le constructeur de la classe parente. Quelqu'un pourrait il m'expliquer le deroulement des appels qui finit par les invoquer ? Je m'attendais a ce que seul le constructeur du parent soit appele. Quelle est l'utilite d'avoir une methode statique comme celles ci ?
D'avance merci