基类和派生类

时间:2012-11-24 13:25:37

标签: c#

如果我有Person类,它将处理所有常见属性

Person.cs

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

现在我需要玩家对象以及后来不同类型的玩家(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类中定义的所有属性,这是创建基类和派生类的正确方法吗? 感谢

2 个答案:

答案 0 :(得分:3)

这是创建基类和派生类的正确方法。由于您的班级Basketball继承自Player的{​​{1}},Person确实可以访问标记为Basketball的{​​{1}}中定义的所有内容或Person。标记为public的任何内容都无法继承类。还要记住,对于许多构造(如字段和方法),缺少访问修饰符将默认为protected访问级别。

答案 1 :(得分:2)

由于您的所有属性都是public任何人,而不仅仅是那些来自Person的属性,都有权获取和设置属性的值。

您可以考虑制作设置器privateprotected,如

public Personality Personality { get; protected set; }

关键字protected表示“只允许从包含类和从包含类派生的类”进行访问。另一方面,private表示“只允许从包含的类/结构访问”。