0 Daumen
393 Aufrufe

Aufgabe:

Figure 2 zeigt Programmcode, der die Geschwindigkeit von Automobilen auf der Kommando-
zeile ausgeben kann. Die Automobile können dabei entweder vom Typ Elektroauto oder Verbrenner sein. Die Methode gibGeschwindigkeitAus kümmert sich abhängig vom Typ des Autos um die Ausgabe.


Screenshot 2022-05-20 at 14.20.55.png

Text erkannt:

if (auto instance0f Elektroauto) \{
Elektroauto eauto \( = \) (Elektroauto) auto;
if (eauto.faehrt()) \{
System.out . println("Geschwindigkeit: " + eauto.getGeschwindigkeit());
\}
\} else if (auto instanceDf Verbrenner) \{
Verbrenner verbrenner \( = \) (Verbrenner) auto;
if (verbrenner bewegtSich()) \{
System . out . println("Geschwindigkeit: " + verbrenner . getKmh());
\}
\}
3

Der hier gezeigte Code der Methode gibGeschwindigkeitAus könnte durch die Einführung eines gemeinsamen Interfaces für Elektroauto und Verbrenner erheblich verkürzt werden. Bearbeiten Sie dazu folgende Aufgaben:


a) Welche Methoden der Klasse Elektroauto und Verbrenner sollten in ein gemeinsames Interface ausgelagert werden, um den Code von gibGeschwindigkeitAus zu vereinfachen? Hinweis: Die Namen der Methoden dürfen hierfür geändert werden.


b) Geben Sie gültigen Java-Code für ein gemeinsames Interface von Elektroauto und Verbrenner an.


c) Vereinfachen Sie die Methode gibGeschwindigkeitAus, indem Sie das Interface aus b) nutzen. Geben Sie den vollständigen Code der vereinfachten Methode an. Hinweis: Die Signatur der Methode (insbesondere der Typ des Parameters auto) sollte hierfür passend geändert werden.


Leider habe ich in der Stacklounge keine Antwort bekommen, sodass ich hier auf Hilfe hoffe. Ich habe enorme Schwierigkeiten bei dieser Aufgabe. Ich verstehe nicht, wie das Interface arbeitet bzw. wie ich den Code vereinfachen könnte.

Ich bin für jede Hilfe dankbar

Avatar von

1 Antwort

0 Daumen

Ich möchte, dass die Funktion gibGeschwindigkeitAus so aussieht:

public void gibGeschwindigkeitAus(Auto auto) {
  if (auto.faehrt()) {
      System.out.println("Geschwindigkeit: " + auto.getGeschwindigkeit())
  }
}

Dazu muss es ein Interface Auto geben, dass die Methoden faehrt und getGeschwindigkeit  deklariert und das von den Klassen Elektroauto und Verbrenner implementiert wird.

Avatar von 5,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community