ableiten?
-
Moin,
ich will ein Minispiel programmieren und benötige dafür Spieler. Nun dachte ich, dass ich eine Klasse Spieler erschaffe und in dieser Klasse gibt es enum, was anzeigt, ob es sich um einen Stürmer, Verteidiger usw. handelt. Dann dachte ich allerdings an Vererbung und dachte ich schreibe eine abstrakte Klasse Spieler und leite von dieser dann eine Klasse Verteidiger usw. ab. Um immer zu wissen, um welchen Spielertyp es sich handelt, dachte ich an einen Getter, der mir je nach Klasse einen anderen string zurückliefert. Welche der beiden Lösungen ist sinnvoller?
-
Falls deine Spieler-Methoden dann so aussehen:
if (typ==VERTEIDIGER)verteidige();
if (typ==STUERMER)stuerme();ist auf jeden Fall Vererbung vorzuziehen. Dazu ist sie ja da.
-
Moin,
und was ist, wenn sich die einzelnen Klassen nicht unterscheiden? Also alle genau wie die Basisklasse aussehen? Arbeitet man vielleicht trotzdem mit Ableitung, um für die Zukunft gerüstet zu sein.
chrische
-
fragender2 schrieb:
Moin,
und was ist, wenn sich die einzelnen Klassen nicht unterscheiden? Also alle genau wie die Basisklasse aussehen? Arbeitet man vielleicht trotzdem mit Ableitung, um für die Zukunft gerüstet zu sein.
chrische
Wenn die verschiedenen Spielertypen verschiedene Dinge tun (wenn z.B. ein Stürmer angreift und ein Verteidiger verteidigt), dann sind die beiden Klassen nicht identisch.
Das ist jedoch mehr eine Game-Design- als eine Programmier-Designfrage. Wenn du Stürmer, Verteidiger, Mittelfeld usw klar trennen möchtest, dann solltest du eine Basisklasse "Spieler" haben und die verschiedenen Typen ableiten. Wenn du jedoch einen Variablen Spieler haben willst, der alles machen kann (der im Prinzip also während des Spiels mal nach vorne stürmt und Stürmer spielt, so wie man es z.B. von Oli Kahn mal kannte) , dann solltest du auch nur eine Klasse haben, die alles kann und nach dem momentanen Status des Spielers handelt.