2017-10-09 22 views
-1

私はマフィアゲームに関するコードを書いています。私は自分自身が解決できない大きな問題を抱えています。このような状況では、どのクラス名をジェネリックに挿入する必要がありますか?

マフィア、警察、医師、市民のクラスがあります。名前は重要ではありません。

すべてのマフィア、警察、医師、市民はPlayerクラスを拡張します。

次に、これらのクラスのオブジェクトをListに配置する必要があります。クラス名は<で書かれなければならないうまく機能し、上記のコードについては、

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); 

? >上記のコード。

'player'という名前のリストには、同じクラスを拡張するいくつかのクラスを含めることができなければなりません。

ありがとうございます。

+0

は、リストの名前(プレイヤー)とそれらのオブジェクトのスーパークラスは、(xxxはプレイヤーを拡張)すでに使用し、そのタイプを知るには十分ではないでしょうか? – Thomas

+0

あなたは 'List <?プレイヤー> players = new ArrayList <>(); ' – procrastinator

+0

[多態性の精緻化]の可能な複製(https://stackoverflow.com/questions/31236388/elaborating-on-polymorphism) – Tezra

答えて

2

すべてのマフィア、警察、医者、市民はPlayerクラスを拡張します。

あなたは基本的に自分で答えを出しました。

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

関連する問題