Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

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

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.

  • Autor

 

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?

  • Autor
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

 

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

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.