Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo ist Guetwaggon eine Tochterklasse von Waggon weil Gueterwaggon einen Konstruktor hat der auch einen String Parameter nimmt und dieser String ist in der abstrakten Waggon Klasse vorhanden während in der Klasse Gueterwaggon nur eine int Variable definiert ist?

Screenshot from 2023-11-27 09-50-06.png

Geschrieben (bearbeitet)

Zweite Frage: Wenn ich den Konstruktor "Gueterwaggon(string,int)" implementiere, wieso nimmt man nicht ziel Variable aus Waggon mit hinein also:

Guetwaggon(ziel, gefahrgutklasse):
this.ziel = ziel
this.gefahrgutklasse = gefahrgutklasse

Aber in den Lösungen ist es so, wie kommt man auf return ziel von basis?

Guetwaggon(ziel, gefahrgutklasse):basis(ziel)
this.gefahrgutklasse = gefahrgutklasse

 

Bearbeitet von rasenganIT
Geschrieben (bearbeitet)

Gueterwaggon erbt von Waggon. Gueterwaggon ist eine weitere Spezialisierung der Klasse. Zusätzlich kannst Du es daran sehen, dass das Attribut ziel mit dem Modifikator # versehen ist. Das # steht für protected. Solche Attribute können vererbt werden. Die Klasse Guetervaggon hingegen hat das Attribut gefahrenklasse, welches mit dem Modifikator - versehen ist. Das steht für private und kann nicht vererbt werden.

Waggon ist außerdem als abstract deklariert. Das bedeutet, die Methoden werden erst in einer Klasse ausprogrammiert, die von dieser abstrakten Klasse erbt.

Bearbeitet von ZwennL
Geschrieben
vor 6 Minuten schrieb rasenganIT:

Zweite Frage: Wenn ich den Konstruktor "Gueterwaggon(string,int)" implementiere, wieso nimmt man nicht ziel Variable aus Waggon mit hinein also:

Guetwaggon(ziel, gefahrgutklasse):
this.ziel = ziel
this.gefahrgutklasse = gefahrgutklasse

würde mal behaupten, dass du den Parentkonstruktor aufrufen musst.

Geschrieben

 

vor 9 Minuten schrieb ZwennL:

Gueterwaggon erbt von Waggon. Gueterwaggon ist eine weitere Spezialisierung der Klasse. Zusätzlich kannst Du es daran sehen, dass das Attribut ziel mit dem Modifikator # versehen ist. Das # steht für protected. Solche Attribute können vererbt werden. Die Klasse Guetervaggon hingegen hat das Attribut gefahrenklasse, welches mit dem Modifikator - versehen ist. Das steht für private und kann nicht vererbt werden.

Waggon ist außerdem als abstract deklariert. Das bedeutet, die Methoden werden erst in einer Klasse ausprogrammiert, die von dieser abstrakten Klasse erbt.

aber die Methoden in Waggon sind nicht als abstract definiert während z.B. addWagon in Zug als abstract benannt ist. Was ist der Unterschied?

Geschrieben
vor 12 Minuten schrieb ZwennL:

Ja, da gibt es einen Unterschied. Ich habe das unsauber und stark verkürzt dargestellt. Hier ist gut beschrieben, wie es sich mit abstrakten Klassen und Methoden verhält:
https://javabeginners.de/Klassen_und_Interfaces/Abstrakte_Klassen.php

dann wäre das auch richtig um den Konstruktor zu implementieren oder?

Gueterwaggon extends Waggon:
super(ziel);

this.gefahrgutklasse = gefahrgutklasse

 

Geschrieben (bearbeitet)
Am 27.11.2023 um 10:03 schrieb rasenganIT:

Aber in den Lösungen ist es so, wie kommt man auf return ziel von basis?

Klasse Waggon ist {abstract} -> bedeutet, dass "Kindklassen" die Ergebnisse liefern müssen. -> Return

Das könnten von n bis unendlich sein, deswegen macht man sie {abstract}

Bearbeitet von eulersche_Zahl
Geschrieben
Gueterwaggon erbt von Waggon. Gueterwaggon ist eine weitere Spezialisierung der Klasse. Zusätzlich kannst Du es daran sehen, dass das Attribut ziel mit dem Modifikator # versehen ist. Das # steht für protected. Solche Attribute können vererbt werden. Die Klasse Guetervaggon hingegen hat das Attribut gefahrenklasse, welches mit dem Modifikator - versehen ist. Das steht für private und kann nicht vererbt werden.
Waggon ist außerdem als abstract deklariert. Das bedeutet, die Methoden werden erst in einer Klasse ausprogrammiert, die von dieser abstrakten Klasse erbt.
Private Attribute werden genauso vererbt, sie können nur nicht mehr innerhalb neu definierten oder überschriebenen Methoden verwendet werden. Wird ein Public Setter und Getter vererbt, so können diese problemlos weiter verwendet werden. q.e.d.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...