Advanced   Java   Services JAVA-Praktikum Back Next Up Home
Reihenfolge der Initialisierung bei Vererbung (Lösung)
// ----- 1, 2 Klärt die Reihenfolge der Initialisierung bei Vererbung ----- \\

public class StaticDemo
{
   public static void main(String[] args)
   {
      StaticChild sc = new StaticChild();
   }
}

class StaticParent
{
   public StaticParent()
   {
      System.out.println("StaticParent()");
   }
}

class StaticChild extends StaticParent
{
   // statischer Konstruktor
   static
   {
      System.out.println("static initializer in StaticChild");
   }
   // anonymer Konstruktor
   {
      System.out.println("anonymous initializer in StaticChild");
   }
   // DefaultKonstruktor
   public StaticChild()
   {
      System.out.println("StaticChild()");
   }

} // end class StaticChild

Das Programm macht die folgende Ausgabe

static initializer in StaticChild
StaticParent()
anonymous initializer in StaticChild
StaticChild()
// ----- 3 Klärt die Reihenfolge der Initialisierung bei Vererbung ----- \\

public class StaticDemo3
{
   public static void main(String[] args)
   {
      StaticChild s1 = new StaticChild();
   }
}

class StaticParent
{
   public StaticParent()
   {
      System.out.println("StaticParent()");
   }
   // statischer Konstruktor
   static
   {
      System.out.println("static initializer in StaticParent");
   }
}

class StaticChild extends StaticParent
{
   // statischer Konstruktor
   static
   {
      System.out.println("static initializer in StaticChild");
   }
   // anonymer Konstruktor
   {
      System.out.println("anonymous initializer in StaticChild");
   }
   // Defaultkonstruktor
   public StaticChild()
   {
      System.out.println("StaticChild()");
   }

   public static void staticMethod()
   {
      System.out.println("staticMethod()");
   }

} // end class StaticChild

Das Programm macht die folgende Ausgabe

static initializer in StaticParent
static initializer in StaticChild
StaticParent()
anonymous initializer in StaticChild
StaticChild()

Folgerung
Statische Daten werden vor der Instantiierung des ersten Objekts angelegt.

Valid XHTML 1.0 Strict top Back Next Up Home