C#中方法前面加上protected是什么意思 大神解答,必采纳
推荐于2016-12-01
展开全部
加 protected 关键字的方法,只能类本身或者子类才能访问到这个方法
有些方法不想外部访问,却想子类访问,就可以加这个关键字。
例:
public abstract class Game
{
public void Start()
{
//如果没有初始化过就
Initialize();
}
//我不想游戏外面也能控制游戏的初始化,那样太糟糕了
protected virtual Initialize()
{
//这里初始化,但是我不能把扩展给堵死了,也许子类还有需要初始化的东西,可以重写
}
}
public class LinkGame : Game
{
protected override Initialize()
{
base.Initialize();
//继续初始化子类
}
}
追问
C#中的Main函数可以访问得到加了protected修饰符的方法吗
追答
Main 函数是静态函数
1. 静态函数可以调用类本身的静态成员(不受访问控制符限制)
public class Test
{
static void Main(string[] args)
{
Hello();//可以调用
}
protected static void Hello()
{ }
}
2. 静态函数不能调用类本身的非静态成员
public class Test
{
static void Main(string[] args)
{
Hello();//这里可以调用不到的
}
protected void Hello()
{ }
}
3. 在类的外部是调用不到类的 protected 成员的
public class Character
{
protected void Hello()
{ }
}
public class Test
{
static void Main(string[] args)
{
var character = new Character();
character.Hello(); //这里也调用不到
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询