protected 关键字是一个成员访问修饰符。
protected 成员在其所在的类中可由派生类实例访问。相对于 private,它的可访问范围稍有扩大,也就是不仅包括声明它的类,也包括从该类继承来的派生类。
示例 1
class Ji
{
protected int x = 123;
}
class Ps : Ji
{
static void PaiSheng ( )
{
Ji ji = new ( );
Ps ps = new ( );
// ji . x = 10; // 警告:CS1540:无法通过“Ji”类型的限定符访问受保护的成员“Ji . x”;限定符必须是“Ps”类型(或者从该类派生)
ps . x = 10; // OK,因为该类继承自 Ji
}
}
语句 ji . x = 10 生成错误,因为它是在静态方法 PaiSheng 中生成的,而不是类 Ps 的实例。
无法保护 struct 成员,因为无法继承 struct。
示例 2
{
static void Main(string[] args)
{
Dian . FF画点 ( );
}
}
class Point
{
protected int x;
protected int y;
}
class Dian : Point
{
public static void FF画点 ( )
{
Dian D = new ( );
D . x = 10;
D . y = 20;
Console . WriteLine ( $"X = {D . x};Y = {D . y}" );
}
}
如果将 Point 的 x 改为 private,将产生编译器警告:
警告 CS0122:“Point . x”不可访问,因为它具有一定的保护级别
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。