在C#中,protected
是一個訪問修飾符,它用于限制類成員(如字段、屬性、方法等)的可見性和訪問權限
當成員被標記為protected
時,只有以下實體可以訪問該成員:
protected internal
的成員還可以被同一程序集中的其他類訪問。protected
修飾符主要用于實現繼承和多態。通過將成員設置為protected
,基類可以提供一些功能和數據,供派生類使用或擴展,而不必暴露給其他無關的類。
與private
修飾符相比,protected
提供了更寬松的訪問控制。private
成員只能在定義它們的類中訪問,而protected
成員可以在派生類中訪問。這使得派生類可以根據需要重寫或修改基類的行為。
下面是一個簡單的示例,說明protected
修飾符的用法:
public class BaseClass
{
protected int _value;
public BaseClass(int value)
{
_value = value;
}
protected virtual void PrintValue()
{
Console.WriteLine("BaseClass: Value is " + _value);
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(int value) : base(value)
{
}
public override void PrintValue()
{
Console.WriteLine("DerivedClass: Value is " + _value);
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass obj = new DerivedClass(10);
obj.PrintValue(); // 輸出 "DerivedClass: Value is 10"
}
}
在此示例中,BaseClass
具有一個protected
字段_value
和一個protected virtual
方法PrintValue()
。DerivedClass
繼承自BaseClass
,并重寫了PrintValue()
方法。由于_value
和PrintValue()
在基類中被聲明為protected
,因此派生類可以訪問和使用它們。