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