Aufrufreihenfolge in Java

SpaceToon

Mitglied
Hey Leute,
ich habe folgendes Beispiel aus der Vorlesung, allerdings kann ich nicht nachvollziehen, wieso z.B. das "this" im Konstruktor als 2. Aufgerufen wird, ich dachte wenn ein Objekt erstellt wird, dann geht man bis zur höchstmöglichen Superklasse und fängt da an.
Mir wurde das so erklärt: Erst zur obersten Superklasse gehen, in diesem Fall Domesticanimal und gucken, gibt es eine statische Variable? Wenn nicht, in die nächste Klasse in der Hierachie und da schauen usw. Wenn man alles abgearbeitet hat, geht man wieder in die Superklasse und führt erst Instanzvariablen aus und dann Konstruktoren. Ist das korrekt?

upload_2018-2-18_20-29-46.png
 
Java:
this("D()2");
verweist doch nur auf einen anderen Konstruktor innerhalb der Klasse.
und
Java:
public Dog(String d){
    System.out.println(s);
}
ist das gleiche wie:
Java:
public Dog(String d){
    super();     
    System.out.println(s);
}
Sprich, nachdem er in this("D()2"); reingeht, würde er danach zu super(); auf der Klasse Dog gehen.
 

Zurück
Oben