在C#中,protected
關鍵字用于聲明類成員的訪問級別
以下是在C#中正確使用protected
繼承的示例:
using System;
class BaseClass
{
protected int _value;
public BaseClass(int value)
{
_value = value;
}
protected void PrintValue()
{
Console.WriteLine("Value: " + _value);
}
}
class DerivedClass : BaseClass
{
public DerivedClass(int value) : base(value)
{
}
public void DisplayValue()
{
// 可以訪問基類的protected成員_value
Console.WriteLine("Derived class directly accessing _value: " + _value);
// 可以訪問基類的protected方法PrintValue()
PrintValue();
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass obj = new DerivedClass(10);
obj.DisplayValue();
}
}
在這個例子中,BaseClass
有一個protected
成員變量_value
和一個protected
方法PrintValue()
。DerivedClass
繼承自BaseClass
,因此它可以訪問這些protected
成員。DerivedClass
的DisplayValue()
方法展示了如何訪問基類的protected
成員。當我們創建一個DerivedClass
對象并調用其DisplayValue()
方法時,將輸出以下內容:
Derived class directly accessing _value: 10
Value: 10
請注意,protected
成員僅在派生類中可訪問,而不是在其他任何類中。如果嘗試從非派生類訪問protected
成員,編譯器將報錯。