Frage von gut4fr5g4, 26

Java Vererbung & Polymorphie Übungsaufgaben?

Mir fällt auf, dass ich NIE Vererbung und Polymorphie anwende, aber ich will das unbedingt können, ich verstehe es auch nur so ein bisschen, also grob verstehe ich es, aber wenn ich es anwenden muss, dann wirds kritisch...

Es wäre echt geil von euch, wenn ihr mir ein paar übungsaufgaben hier stellt zu polymorphie und vererbung (wenn es geht zu beidem gleichzeitig), wäre echt nett

können auch anspruchsvollere aufgaben sein.

Danke im vorraus! LG

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von regex9, 5

Ich habe mir spontan 5 Aufgaben ausgedacht. Ich definiere nur Randanforderungen, an denen du dich orientieren kannst. Eine weitere Ausgestaltung überlasse ich dir. Bei weiteren Fragen, wende dich gern an mich. Überleg dir, bevor du anfängst, ein Konzept. Fasse dabei alle Anforderungen zusammen, die du erfüllen möchtest.

  • Erstelle ein Programm, indem man verschiedene Objekte (Rechteck, Quadrat, Dreieck, ...) mit einer bestimmten Farbe (rot, blau, grün, ...) erstellen kann. Mögliche neue Farben oder Objekte sollen vom Nutzer variabel neu hinzugefügt werden können. Die Darstellung der Objekte bleibt dir überlassen.
  • Erstelle eine Minispiel "Lemminge". Die Welt besteht aus Blöcken, die unterschiedlich wirken können (bspw. solid, wackelig, bröckelig, ...) und die Lemminge haben z.T. unterschiedliche Fähigkeiten (graben, bohren, stehen bleiben...). Sobald ein Lemming auf das erste Hindernis stößt, schaut er, ob ihn seine Fähigkeit weiterbringt. Ansonsten läuft er wieder zurück. Es soll möglich sein, das Spiel später einfach durch neue Blöcke oder Lemmingstypen erweitern zu können.
  • Erstelle eine Autobahnsimulation. Es gibt verschiedene Fahrzeuge in verschiedenen Farben und Größen, mit unterschiedlichen Huptönen und Geschwindigkeiten. Jedes Auto soll ein eigenes Verhalten aufweisen. Schnelle Autos könnten bei langsamen Autos vor ihnen viel hupen und die nächstmögliche Möglichkeit zum Überholen nutzen. Langsame Autos könnten vorzugsweise die rechte Spur wählen und wenig hupen. Für den Vorgang des Fahrspurwechsels ist eine Geschwindigkeitsänderung natürlich erlaubt. Es sollen variabel neue Fahrzeuge hinzugefügt werden können. Die Darstellung der Objekte bleibt dir überlassen.
  • Erstelle einen Marktplatz mit verschiedenen Marktständen. Auf diesem Marktplatz laufen eine variabel einstellbare Anzahl an Menschen herum, die eine zufällig generierte Liste an Produkten einkaufen wollen. Jeder Mensch variiert in Trag- oder Gedächtniskraft (demnach ist die Liste länger oder kürzer), Geschlecht, Geschwindigkeit und Interessen. Je nachdem wird er also auch nur bestimmte Produkte kaufen (Vegetarier bspw. nur Gemüse, Nerds nur USB-Sticks, etc. - der Fantasie sind da keine Grenzen gesetzt). In einer Sidebar sollen all die Käufer verzeichnet sein, die noch mit ihrem Einkauf beschäftigt sind. Es soll variabel möglich sein, vor Einkaufsstart neue Menschentypen und Produkte einzustellen. Bei den Händlern gibt es klare Gruppierungen: Gemüsehändler, Obsthändler, Fleischverkäufer, Bäcker, .... - demnach sollen sie auch nur das verkaufen können, was logischerweise in ihre Produktpalette hineinpasst. Die Darstellung der Objekte bleibt dir überlassen.
  • Baue ein Chatprogramm
Kommentar von gut4fr5g4 ,

Oha, danke dir deine Mühe, danke danke danke danke! :D

Antwort
von Busverpasser, 15

Schau dir doch einfach mal Java selbst an. Diese komplette Sprache basiert auf Vererbung. Die meisten Klassen haben eine Basisklasse, welche Grundfunktionalitäten bietet. Diese werden dann durch die Abgeleitete Klasse nur erweitert.

Wenn du dir anschaust, wie die es gemacht haben und dich fragst weshalb, wird dir sicherlich schon einiges klar.

Ansonsten klassisches Beispiel: Verschiedene Objektarten in einem Array oder Liste speichern. Ohne weiteres nicht so einfach möglich, außer sie haben eine gemeinsame Basisklasse...

Antwort
von SkyDown, 19

Das liegt daran, dass diese beiden Features nicht notwendig sind um funktionierende Programme zu erstellen. Sie sind jedoch sinnvoll, wenn man größere Programme schreiben möchte und der schlüssel dazu liegt darin, dass du dein Programmierstil änderst. Versuche dein nächstes Projekt mal anders zu denken.

Also dass du dir auch Gedanken über mögliche Erweiterungen machst und dementsprechend Basisklassen erstellst.

Ich hatte z.B. ein Tool gemacht, dass auf Flirtseiten leute automatisch anschreibt. Da hatte ich unteranderem eine Basisklasse "Bot" und weitere Unterklassen für die verschiedenen seiten, da jede seite anders aufgebaut war. Man konnte dann polymorphie nutzen indem man eine variable der basisklasse hatte und jenachdem auf welcher seite der bot laufen sollte wurde eine instanz des typen der unterklasse erzeugt und der variable zugewiesen.

Keine passende Antwort gefunden?

Fragen Sie die Community