Tam*_*dze 2 c# class derived base subclass
我不明白为什么我可以访问 Base 类的字段。我没有 Base 类的对象,据我所知,私有字段没有被继承。当我尝试通过反射获取“SubDerived”类的字段“i”时,它找不到它。请任何人解释..
using System;
namespace tests
{
public class Test
{
static void Main()
{
Base.SubDerived a = new Base.SubDerived();
a.f();
Console.ReadLine();
}
}
class Base
{
int i = 1;
public class SubDerived : Base
{
public void f()
{
Console.WriteLine(base.i);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
SubDerived是嵌套的,这就是为什么它可以访问private父类型的成员。如果你这样做:
class Base
{
int i = 1;
}
public class SubDerived : Base
{
public void f()
{
Console.WriteLine(base.i);
}
}
Run Code Online (Sandbox Code Playgroud)
您将无法访问i。您需要进行访问protected。