Lo siguiente se ilustra con ejemplos:
clase de padres
padre de clase pública {
estático{//bloque estático
System.out.println("bloque libre ESTÁTICO del padre en ejecución");
}
{//Bloque no estático
System.out.println("bloque libre del padre ejecutándose");
}
padre público(){
System.out.println("constructor del padre ejecutándose");
}
}
Subclase
{//Bloque no estático
System.out.println("bloque libre del hijo ejecutándose");
}
hijo público() {
// TODO Código auxiliar de constructor generado automáticamente
System.out.println("constructor del hijo ejecutándose");
}
}
La clase donde se encuentra la función principal.
prueba de clase pública {
público estático vacío principal (String [] argumentos) {
Clase f;
intentar {
System.out.println("--------antes de cargar padre--------");
f=Class.forName("freeblock.padre");
System.out.println("--------poscarga padre---------");
System.out.println("--------antes del objeto padre inicial--------");
f.nuevaInstancia();
System.out.println("--------después del objeto padre inicial--------");
} captura (ClassNotFoundException e) {
e.printStackTrace();
} captura (InstantiationException e) {
e.printStackTrace();
} captura (IllegalAccessException e) {
e.printStackTrace();
}
Clase s;
intentar {
System.out.println("-------antes de cargar hijo--------");
s=Class.forName("freeblock.son");
System.out.println("--------poscarga hijo--------");
System.out.println("--------antes del objeto hijo inicial----------");
s.newInstance();
System.out.println("--------después del objeto hijo inicial-----------");
} captura (ClassNotFoundException e) {
e.printStackTrace();
} captura (InstantiationException e) {
e.printStackTrace();
} captura (IllegalAccessException e) {
e.printStackTrace();
}
}
}
Resultado de la ejecución:
--------antes de cargarpadre--------
blockrunning libre ESTÁTICO del padre
--------después de cargarpadre---------
--------antes del objeto padre inicial--------
bloque libre del padre corriendo
constructor del padre corriendo
--------después del objeto padre inicial--------
-------antes de cargar hijo--------
Bloqueo libre ESTÁTICO de su hijo en ejecución
--------después de la carga hijo-------
--------antes del objeto sonoro inicial---------
bloque libre del padre corriendo
constructor del padre corriendo
bloque libre del hijo corriendo
constructor de hijo corriendo
--------después del objeto hijo inicial----------