1

すべての一般的なプロパティを処理するPersonクラスがある場合

Person.cs

public class Person
{
   public FirstAndLastName {get; set;}
   public Health Health {get; set;}
   public Personality Personality {get; set;}
}

今度はPlayerオブジェクトが必要になり、後でさまざまなタイプのプレーヤー(soccerPlayer、bballplayerなど)が必要になります。プレーヤーは人なので、このアプローチを使用できます。

Player.cs
public class Player:Person
{
   public Sport Sport {get; set;}
}

ここで、バスケットボールのアリウープやサッカー(サッカー)でのボレーシュートなど、スポーツベースのプレーヤー独自のプロパティを実装したいと思います。あなたは写真を持っています。

Basketball.cs
public class Basketball:Player
{
   public int AlleyUpLevel {get; set;}
}

質問:ベースクラスと派生クラスを作成するこの適切な方法は、バスケットボール選手がPersonクラスで定義されたすべてのプロパティにアクセスできる必要がありますか?ありがとう

4

2 に答える 2

3

これは、基本クラスと派生クラスを作成する正しい方法です。クラスBasketballは継承元から継承するPlayerためPerson、は、またはで定義されているBasketballすべてのクラスに実際にアクセスできます。マークされたものは、継承するクラスにアクセスできなくなります。また、フィールドやメソッドなどの多くの構造の場合、アクセス修飾子がない場合、デフォルトでアクセスレベルになることにも注意してください。Personpublicprotectedprivateprivate

于 2012-11-24T13:30:27.877 に答える
2

プロパティはすべてであるため、から派生したものだけでなくpublic誰でもPersonプロパティの値の取得と設定の両方にアクセスできます。

あなたはセッターを作ることを検討することができますprivateまたはprotectedのように

public Personality Personality { get; protected set; }

キーワードprotectedは、「包含クラスおよび包含クラスから派生したクラスからのアクセスのみ」を意味します。一方、private「含まれているクラス/構造体からのアクセスのみ」を意味します。

于 2012-11-24T13:41:22.980 に答える