Hallo,
ich habe eine Frage.
Eine Klasse S erbt von einer Klasse C. Klasse C erbt von Klasse T.
Es wird ein Object von S über den Konstruktor mit parameter erstellt.
Als erstes im Konstuktor wird dannn this() gemacht. Also sollte laut meinem Verständnis der parameterlose Konstruktor von S aufgerufen werden, bevor die Super Konstruktoren aufgerufen werden.
Leider funktioniert das bei mir nicht. Hier mal der Coder der Klassen.
Kann das daran liegen, dass tell erst in T erstellt wird?? Genauso mit whoAreYou()???
Danke
ich habe eine Frage.
Eine Klasse S erbt von einer Klasse C. Klasse C erbt von Klasse T.
Es wird ein Object von S über den Konstruktor mit parameter erstellt.
Als erstes im Konstuktor wird dannn this() gemacht. Also sollte laut meinem Verständnis der parameterlose Konstruktor von S aufgerufen werden, bevor die Super Konstruktoren aufgerufen werden.
Leider funktioniert das bei mir nicht. Hier mal der Coder der Klassen.
Java:
public class T {
protected boolean tell = false;
public T() {
if (!tell) {
System.out.println("Tinker");
} else {
System.out.println("Dame");
}
}
public String whoAreYou() { return "Tailor"; }
public String toString() { return "Koenig"; }
}
Java:
public class C extends T {
public C() {
System.out.println(this);
System.out.println("Soldier");
tell = true;
}
public String toString() {
System.out.println("von John Le Carre");
return "Spion";
}
}
Java:
public class S extends C {
public S(String who) {
this();
if (!tell) {
System.out.println("alias David John Moore Cornwell");
System.out.println(who);
} else {
System.out.println("alias John Le Carre");
}
}
public S() { System.out.println(this); }
public String toString() {
if (!tell) {
return whoAreYou();
} else {
System.out.println("Spy");
return "by David John Moore Cornwell";
}
}
public static void main(String args[]) {
new S("Ass");
}
}
Kann das daran liegen, dass tell erst in T erstellt wird?? Genauso mit whoAreYou()???
Danke
Zuletzt bearbeitet: