Gast
#3797273
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
|
Anzeige
|
Funktion ruft Konstruktor auf
Gast
#3797273
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
Gast
#3797278
Seite 8 unten gelesen?
Gast
#3797281
Tom schrieb:
^^ ist nicht der OP, sondern ein anderer Tom.
Gast
#3797283
JA ok aber warum weiß die Funktion super(n,a), dass sie den Konstruktor der Klasse Person öffnen muss???? Gruß Tom
Gast
#3797284
Tom schrieb: > Tom schrieb: > ^^ ist nicht der OP, sondern ein anderer Tom. Ist ja lustig noch ein Tom
Gast
#3797288
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.
Gast
#3797295
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.
Gast
#3797296
Ist Tom jetzt der uc.net-Bernd? Kann Tom da einen Trend erkennen?
Gast
#3797297
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
Gast
#3797299
OK, super danke!
Gast
#3797302
@ Fragender Tom Darf man fragen warum Java? Was reizt dich daran? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|