C#访问修饰符作用范围:
提示:这里可以添加学习目标
简述:
- protected:保护访问。只限于本类和子类访问。实例不能访问。
namespace ProtectedSample
{
class BaseTest
{
public int a = 10;
protected int b = 2;
}
class ChildTest : BaseTest
{
int c;
int d;
public void printTest()
{
BaseTest basetest = new BaseTest();
this.a = basetest.a;
this.c = basetest.b;
//protected类型并不是能够被派生类所访问就是随心所欲的访问,而是有条件的。访问必须是通过派生类类型发生时,
//在派生类中的基类的protected类型成员才能够被访问。
//这里就很清楚了上面的代码并不是通过派生类的类型访问的,而是通过基类的类型访问的,此时此刻,protected和private
//十分的相似,只不过,protected类型成员能够被派生类所继承并且能够通过派生类类型访问罢了。
}
}
}
改成如下正确形式:
namespace ProtectedSample
{
class BaseTest
{
public int a = 10;
protected int b = 2;
}
class ChildTest : BaseTest
{
int c;
int d;
public void printTest()
{
ChildTest childTest = new ChildTest();
this.a = childTest.a;
this.c = childTest.b;
}
}
}