我们知道在C#中关于访问级别有public、protected、internal、protected internal和private五种访问级别。其中C#的类默认访问级别是internal的,而对于类中的成员(字段和方法)是private级别的。在这里我们在来看一下非常有意思的protected关键字的使用注意事项。
protected是受保护限制的,也就是说只有子类可以访问protected修饰的成员,那么实际情况是什么样的呢。我们来看一个代码示例:
namespace MySpace
{
public class A
{
protected string name;
}
public class B : A
{
public void Test()
{
A a = new A();
//a.name; 这里访问不到
Console.WriteLine(this.name);//可以访问
}
}
}
通过上面的例子我们总结出:对于protec的关键字来说,子类可以通过继承关系直接访问,而不能通过创建父类的引用的方式来访问。对于这一点相对于java同样适用。