La copia del código es la siguiente:
La clase pública Derive extiende la base
{
miembro privado m1 = nuevo miembro ("miembro 1");
{
System.out.println ("Bloque inicial ()");
}
Public Derive () {
System.out.println ("derive ()");
}
miembro privado m2 = nuevo miembro ("miembro 2");
private int i = getInt ();
Private int getint ()
{
System.out.println ("getInt ()");
regresar 2;
}
Public static void main (String [] args)
{
nuevo derive ();
}
}
base de clases
{
Base pública ()
{
System.out.println ("base ()");
}
}
miembro de la clase
{
Miembro público (cadena M)
{
System.out.println ("member ()"+m);
}
}
/*Salida del programa:
Base()
Miembro () miembro 1
Bloque inicial ()
Miembro () miembro 2
getint ()
Derivar()
*/
La conclusión es la siguiente: sin considerar la inicialización de los miembros estáticos, al llamar al constructor de un objeto, el programa primero llama al constructor de la clase principal (el constructor de la clase principal se puede especificar a través de la palabra clave súper, de lo contrario, el constructor sin parámetros se llamará de forma predeterminada. La variable no tiene un valor especificado, se asigna el valor predeterminado, es decir, los datos básicos que el tipo es 0 o falso, etc., y el objeto es nulo finalmente.