Ce qui suit est illustré par des exemples :
classe parent
père de classe publique {
bloc statique{//statique
System.out.println("Bloc libre STATIC du père en cours d'exécution");
}
{//Bloc non statique
System.out.println("le bloc libre du père en cours d'exécution");
}
père public(){
System.out.println("le constructeur du père en cours d'exécution");
}
}
Sous-classe
{//Bloc non statique
System.out.println("le bloc libre du fils en cours d'exécution");
}
fils public() {
// TODO Stub de constructeur généré automatiquement
System.out.println("le constructeur du fils en cours d'exécution");
}
}
La classe où se trouve la fonction principale
test de classe publique{
public static void main (String[] arguments) {
Classe F ;
essayer {
System.out.println("--------avant de charger le père--------");
f=Class.forName("freeblock.father");
System.out.println("--------après chargement père--------");
System.out.println("--------avant l'objet père initial-------");
f.newInstance();
System.out.println("--------après l'objet père initial-------");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstanciationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Classe s ;
essayer {
System.out.println("-------avant de charger son--------");
s=Class.forName("freeblock.son");
System.out.println("--------fils de chargement--------");
System.out.println("--------avant l'objet fils initial---------");
s.newInstance();
System.out.println("--------après l'objet fils initial----------");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstanciationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
Résultat de l'exécution :
--------avant le père de chargement--------
blockrunning gratuit STATIC de mon père
--------après le père de chargement---------
--------avant l'objet père initial--------
le bloc libre du père fonctionne
le constructeur de mon père est en marche
--------après l'objet père initial--------
-------avant de charger mon fils--------
le bloc libre STATIQUE de son fils est en cours d'exécution
--------après le chargement fils-------
---------avant l'objet fils initial---------
le bloc libre du père fonctionne
le constructeur de mon père est en marche
le bloc libre de mon fils est en cours d'exécution
le constructeur du fils est en marche
---------après l'objet fils initial--------------