MINT üben

Vererbung

Zwei Abituraufgaben mit Hinweisen und Erwartungshorizont: überschreiben, super und Polymorphie — Onlineshop und Rollenspiel.

Dein Fortschritt:
0 / 0 Aufgaben
1

Der Onlineshop

AFB I–II

Ein Onlineshop verkauft Waren mit unterschiedlichen Steuersätzen. Die Preislogik wurde mit Vererbung modelliert.

Klassendiagramm des Onlineshops (Ausschnitt)
Artikel
  • - bezeichnung: Zeichenkette
  • # nettopreis: Fließkommazahl
  • c Artikel(bez: Zeichenkette, netto: Fließkommazahl)
  • + getPreis(): Fließkommazahl
Lebensmittel
  • - mhd: Zeichenkette
  • c Lebensmittel(bez: Zeichenkette, netto: Fließkommazahl, mhd: Zeichenkette)
  • + getPreis(): Fließkommazahl
Gutschein
    • c Gutschein(wert: Fließkommazahl)
    • + getPreis(): Fließkommazahl

    Ein Artikel kostet regulär den Nettopreis plus 19 % Mehrwertsteuer, Lebensmittel plus 7 %. Gutscheine sind steuerfrei. Der Warenkorb kennt beliebig viele Artikel (- artikel: DynArray<Artikel>) und berechnet mit gesamtpreis() die Summe aller Preise.

    1. Beschreiben Sie die im Klassendiagramm dargestellten Beziehungen. Gehen Sie auf die Bedeutung von # und auf das mehrfache Auftreten von getPreis() ein. 4 BE
    2. Implementieren Sie die Klasse Lebensmittel vollständig in Java. 5 BE
    3. Wenden Sie die Methode gesamtpreis() auf einen Warenkorb an, der einen Artikel("Kopfhörer", 50.00), ein Lebensmittel("Kaffee", 10.00, "2027-03-01") und einen Gutschein(20.00) enthält. Geben Sie für jeden Schleifendurchlauf die aufgerufene Methode und das Zwischenergebnis an. 4 BE
    4. Erläutern Sie, warum gesamtpreis() nicht geändert werden muss, wenn der Shop später eine Klasse Buch (ebenfalls 7 %) ergänzt. 4 BE

    Summe: 17 BE

    Hinweise

    Hinweis zu Aufgabe a)
    Das hohle Dreieck zeigt zur Oberklasse. Frage: Wer darf nettopreis lesen?
    Hinweis zu Aufgabe b)
    Kopf mit extends, Konstruktor mit super(…) als erster Anweisung, dann getPreis() überschreiben.
    Hinweis zu Aufgabe c)
    Welche getPreis() läuft, entscheidet das Objekt im jeweiligen Listenplatz.
    Hinweis zu Aufgabe d)
    Welchen Typ haben die Listenelemente, und welche Methode ruft die Schleife auf?