在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
成员,编译器将报错。