Advanced   Java   Services JAVA-Praktikum Back Next Up Home
this and super (Lösung)
// --------------- ohne this() und ohne (explizites) super() --------------- \\
public PersTel()
{
   // defaultkonstruktor der elternklasse wird automatisch gerufen
}

public PersTel(String v, String n, String t)
{
   // defaultkonstruktor der elternklasse wird automatisch gerufen
   setVorname(v); setNachname(n);
   tel=t;
}

public PersTel(String v, String t)
{
   // defaultkonstruktor der elternklasse wird automatisch gerufen
   setVorname(v); setNachname("");
   tel=t;
}

public PersTel(Person p, String t)
{
   // defaultkonstruktor der elternklasse wird automatisch gerufen
   setVorname(p.getVorname());
   setNachname(p.getNachname() );
   tel=t;
}

public PersTel(PersTel pt)
{
   // defaultkonstruktor der elternklasse wird automatisch gerufen
   setVorname(pt.getVorname());
   setNachname(pt.getNachname() );
   tel=pt.tel;
}

// ----------------- mit this() und nur einmal mit super() ----------------- \\
public class PersTel3 extends Person
{
   private String tel="";

public PersTel3()
{
   // Aufruf  von PersTel3(String v, String n, String t)
   this("", "", "") ;
}

public PersTel3(String v, String n, String t)
{
   //elternklassenkonstruktor wird von hand gerufen
   super(v,n) ;
   tel=t;
}

public PersTel3(String v, String t)
{
   // Aufruf  von PersTel3(String v, String n, String t)
   this(v,"",t);
}

public PersTel3(Person p, String t)
{
   // Aufruf  von PersTel3(String v, String n, String t)
   this( p.getVorname(), p.getNachname(), t ) ;
}

public PersTel3(PersTel3 pt)
{
   // Aufruf  von PersTel3(String v, String n, String t)
   //this(pt.getVorname(), pt.getNachname(), tel) ;
   // cannot reference tel before supertype constructor has been called
   this(pt.getVorname(), pt.getNachname(), pt.tel) ;
}


// ---------- ohne this() und mit super() (explizit und implizit) ---------- \\
public PersTel2()
{
   //automatische Ergänzung von super()
}

public PersTel2(String v, String n, String t)
{
   //elternklassenkonstruktor wird von hand gerufen
   super(v,n) ;
   tel=t;
}

public PersTel2(String v, String t)
{
   //System.out.println(t);
   super(v, "") ;
   tel=t;
}

public PersTel2(Person p, String t)
{
   super(p) ;
   tel=t;
}

public PersTel2(PersTel2 pt)
{
   super(pt) ;
   tel=pt.tel;
}
Valid XHTML 1.0 Strict top Back Next Up Home