class Program
{
class TestA
{
protected string protectedStringA;
}
class TestB : TestA
{
string StringTestB()
{
return protectedStringA;
}
}
class TestC : TestB
{
string StringTestC()
{
return protectedStringA;
}
}
static void Main(string[] args)
{
}
}
根据this链接,受保护的定义为"类型或成员只能由同一类或结构中的代码访问,或者在从该类派生的类"。这里的Class TestC不是从TestA派生的。但仍然可以访问protectedStringA。从该类派生的类的确切含义是什么?
答案 0 :(得分:2)
由于B
继承了A's
(公共和受保护)成员,C
会从B
继承所有成员。这是继承的重点。
从该类派生的类的确切含义是什么?
这意味着派生类可以访问其基类的受保护成员。在这种情况下,C
实际上是间接从A
继承的。因此,它可以访问其基类的所有public
和protected
成员。
答案 1 :(得分:2)
尽管TestC不是直接从TestA派生的,但它间接是因为TestB继承了TestA。我希望这会有所帮助。
答案 2 :(得分:2)
让我们换句话说:
"任何班级都可以访问其祖先的任何受保护成员"。
如果TypeA
是TypeB
的祖先且TypeB
是TypeC
的祖先,则TypeA
是TypeC
的祖先。