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继承自Playerwhich 继承自Person,所以Basketball确实可以访问Person标记为publicor的所有内容protected。任何被标记的东西private都不能被继承类访问。还要记住,在许多构造(例如字段和方法)的情况下,缺少访问修饰符将默认为private访问级别。

于 2012-11-24T13:30:27.877 回答
2

由于您的属性是 all public,因此任何人,而不仅仅是那些派生自 的人Person,都可以访问获取和设置属性的值。

您可以考虑制作 setterprivateprotected,如

public Personality Personality { get; protected set; }

关键字的protected意思是“只能从包含类和从包含类派生的类访问”。另一方面private意味着“仅从包含的类/结构访问”。

于 2012-11-24T13:41:22.980 回答