Zum Inhalt springen

Vererbung - Abstrakte Klasse


Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Bearbeitet von ZwennL
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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...