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