La copie de code est la suivante:
La classe publique dérive la base
{
membre privé M1 = nouveau membre ("membre 1");
{
System.out.println ("Initial Block ()");
}
public dérive () {
System.out.println ("Derive ()");
}
membre privé M2 = nouveau membre ("membre 2");
privé int i = getInt ();
private int getint ()
{
System.out.println ("getInt ()");
retour 2;
}
public static void Main (String [] args)
{
new Derive ();
}
}
base de classe
{
base publique ()
{
System.out.println ("Base ()");
}
}
membre de la classe
{
Membre public (String M)
{
System.out.println ("membre ()" + m);
}
}
/ * Sortie du programme:
Base()
Membre () membre 1
Bloc initial ()
Membre () membre 2
getint ()
Dériver()
* /
La conclusion est la suivante: sans considérer l'initialisation des membres statiques, lors de l'appel du constructeur d'un objet, le programme appelle d'abord le constructeur de la classe parent (le constructeur de la classe parent peut être spécifié via le mot-clé super, sinon le constructeur sans paramètres sera appelé par défaut. La variable n'a pas de valeur spécifiée, la valeur par défaut est attribuée, c'est-à-dire les données de base que le type est 0 ou false, etc., et l'objet est nul;