各スポーツ選手の名前と年齢を取り入れた「スポーツ」抽象クラスの10人の選手の配列のオブジェクトをインスタンス化しようとしています。 「テニス」アスリートのクラスと「ゴルフ」アスリートのクラスがあります。Cで基本クラスと派生クラスを使用して配列内のオブジェクトをインスタンス化する
class Program
{
static void Main(string[] args)
{
Sport[] athlete = new Sport[10];
athlete[0] = new Tennis("John Smith", 18, "Tennis", 5.0, 92);
athlete[1] = new Tennis("Lisa Townsend", 15, "Tennis");
athlete[2] = new Tennis("Brian Mills", 17, "Tennis", 4.0, 83);
athlete[3] = new Golf("Stacey Bell", 16, "Golf", 10, 20);
athlete[4] = new Golf("Tom Spehr", 18, "Golf", 9, 12);
athlete[5] = new Golf("Sam Calen", 14, "Golf");
athlete[6] = new Tennis("Karen Strong", 17, "Tennis", 3.0, 78);
athlete[7] = new Golf("Ken Able", 15, "Golf", 15, 16);
athlete[8] = new Tennis("Troy Soni", 18, "Tennis", 4.5, 93);
athlete[9] = new Golf("Toni Palmer", 17, "Golf", 8, 22);
for (int i = 0; i < 10; i++)
{
Console.WriteLine("{0}", athlete[i]);
}
}
}
このような配列を印刷しようとしていますが、正しく出力されません。私は
Console.WriteLineを( "{0} {1}"、アスリート[I] .nameの、アスリート[I] .age)
として個別データフィールドを印刷するときにも、私はそれを得ることができ各アスリートの名前と年齢を出力しますが、他のフィールドを追加しようとすると出力されません。テニスやゴルフではなく、それぞれの配列オブジェクトを「スポーツ」として宣言する必要がありますか?
編集:ここでは
はスポーツクラスは
abstract class Sport
{
protected string name;
protected int age;
public Sport(string name, int age)
{
Name = name;
Age = age;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public abstract void Performance();
}
であり、ここで派生テニスクラスです(ゴルフクラスは、変数名にちょうどわずかな変化と同じように構成されている)
class Tennis : Sport
{
private string type;
private double rating;
private int serveSpeed;
public Tennis(string name, int age, string type, double rating, int serveSpeed) : base(name, age)
{
Rating = rating;
Type = type;
ServeSpeed = serveSpeed;
}
public Tennis(string name, int age, string type) : base(name, age)
{
}
public double Rating
{
get
{
return rating;
}
set
{
rating = value;
}
}
public string Type
{
get
{
return type;
}
set
{
type = "Tennis";
}
}
public int ServeSpeed
{
get
{
return serveSpeed;
}
set
{
serveSpeed = value;
}
}
「スポーツ」、「ゴルフ」、「テニス」クラスはどのように見えますか? –
これらのクラスに対して 'ToString'を実装します –
「正しく出力されていません」は何も教えてくれません。あなたは何を期待していますか?あなたは何を観察していますか?あなたは、あなたが期待したことが正しいと考えている理由は何ですか? –