如果我有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类中定义的所有属性,这是创建基类和派生类的正确方法吗? 感谢
答案 0 :(得分:3)
这是创建基类和派生类的正确方法。由于您的班级Basketball
继承自Player
的{{1}},Person
确实可以访问标记为Basketball
的{{1}}中定义的所有内容或Person
。标记为public
的任何内容都无法继承类。还要记住,对于许多构造(如字段和方法),缺少访问修饰符将默认为protected
访问级别。
答案 1 :(得分:2)
由于您的所有属性都是public
,任何人,而不仅仅是那些来自Person
的属性,都有权获取和设置属性的值。
您可以考虑制作设置器private
或protected
,如
public Personality Personality { get; protected set; }
关键字protected
表示“只允许从包含类和从包含类派生的类”进行访问。另一方面,private
表示“只允许从包含的类/结构访问”。