私は現在C#で非常に単純なポケモンアプリケーションを開発中です。私はポケモンとその戦いのタイプとの関係を設定する方法についての不確実だったが、私はちょうど次をやってしまった:継承時の値の変更のみ
abstract class Pokemon
{
private int number;
private string name;
protected string weakness;
protected string strength;
public Pokemon(int number, string name)
{
this.number = number;
this.name = name;
weakness = "none";
strength = "none";
}
}
私はその後だけの具体的な弱さと強さを変更するにはポケモンを継承別々のクラスを作りましたタイプ。
親の初期値の一部を変更するという唯一の目的でサブクラスを作成するのは悪い礼儀ですか?
ここにからアプリケーションまたはどのように継承を適切に使用する方法を改善する方法についてのアプリケーション
pokemon = new Pokemon[6];
pokemon[0] = new Grass(001, "Bulbasaur");
pokemon[1] = new Grass(002, "Ivysaur");
pokemon[2] = new Grass(003, "Venusaur");
pokemon[3] = new Fire(004, "Charmander");
pokemon[4] = new Fire(005, "Charmeleon");
pokemon[5] = new Fire(006, "Charizard");
ためのポケモンを「作成」する一切のアドバイスははるかに高く評価されたときに、私は次のことを行う上でつもり: )
もう一つの可能な解決策は、コンストラクタで列挙型を使用することです。そのため、あなたは 'PokemonType.Grass'や' PokemonType.Fire'のようなものを渡します。 2種類のポケモンのために 'List'を受け入れるように設定することもできます。 –
Hill