Ich verstehe ich Funktion super(n,a) nicht und wieso diese den Konstruktor aufruft. In Foile4.pdf ist der Quellcode auf Seite 7. Kann mir jemand erklären, was damit gemeint ist? Danke Gruß Tom
JA ok aber warum weiß die Funktion super(n,a), dass sie den Konstruktor der Klasse Person öffnen muss???? Gruß Tom
Tom schrieb: > Tom schrieb: > ^^ ist nicht der OP, sondern ein anderer Tom. Ist ja lustig noch ein Tom
Wird doch etwas weiter unten erklärt. Damit initialisierst du die Instanz der Elternklasse "Person". "Trainer" soll ja nicht auf die internen Person-Variablen zugreifen (Kapselung). Außerdem spart man sich so etwas Arbeit. "erfahrung" ist hier Bestandteil der abgeleiteten Klasse "Trainer" und wird darum separarat im Trainer-Konstruktor initialisiert; den Rest übernimmt der Person-Konstruktor.
Tom schrieb: > aber warum weiß die Funktion super(n,a) Java ist so schlau und ersetzt das super() durch den Konstruktor von Person(), da eindeutig klar ist, wovon Trainer abgeleitet ist und Java also weiß, welcher Konstruktor gemeint ist. In C++ z.B. ginge das nicht so. Da man dort von mehreren Klassen gleichzeitig ableiten kann, gibt es keine eindeutige Superclass und man muss explizit angeben, welchen Konstruktor man wie aufrufen will.
Tom schrieb: > JA ok aber warum weiß die Funktion super(n,a), dass sie den > Konstruktor der Klasse Person öffnen muss???? Welchen sonst? Es gibt in Java keine Mehrfachvererbung. Existiert in der Elternklasse kein Konstruktor mit den entsprechenden Parametern, gibt es einen Fehler beim Kompilieren. Wenn in der Elternklasse kein Konstruktor explizit definiert wird, wird einer erzeugt (parameterloser Default-Konstruktor) und dieser auch ohne dein Zutun aufgerufen. http://docs.oracle.com/javase/tutorial/java/IandI/super.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.