2017-10-09 3 views
-1

Ich schreibe einen Code über Mafia-Spiel. aber ich habe ein großes Problem, das ich selbst nicht lösen kann.Welcher Klassenname muss in dieser Situation für Generic eingefügt werden?

Es gibt Mafia-, Polizei-, Arzt- und Bürgerklassen. Der Name ist nicht wichtig.

und jede Mafia, Polizei, Arzt, Bürger erweitert Spielerklasse.

Dann muss ich diese Objekte Objekt von diesen Klassen zu List setzen.

Mafia mafia = new Mafia(); 
Doctor doctor = new Doctor(); 
Police police = new Police(); 
Citizen citizen = new Citizen(); 

List players<?> = new ArrayList(); 

players.add(mafia); 
players.add(doctor); 
players.add(police); 
players.add(citizen); 

Für obigen Code funktioniert gut, der Klassenname in < geschrieben werden muss? > oben genannten Code.

Die Liste namens 'player' muss in der Lage sein, mehrere Klassen zu enthalten, die dieselbe Klasse erweitern.

Vielen Dank.

+0

Sollte nicht der Name der Liste (Spieler) und die Oberklasse dieser Objekte (xxx erstreckt Spieler) bereits ausreichend sein, dass Art zu kennen zu benutzen? – Thomas

+0

Sie können wie 'List players = new ArrayList <>(); ' – procrastinator

+0

Mögliches Duplikat von [Ausarbeiten von Polymorphismus] (https://stackoverflow.com/questions/31236388/elaborating-on-polymorphism) – Tezra

Antwort

2

und jede Mafia, Polizei, Arzt, Bürger erweitert Spieler Klasse.

Sie gaben im Grunde die Antwort selbst.

List<Player> players = new ArrayList<>();

Verwandte Themen