protected access modifier的含义

时间:2014-12-02 22:46:08

标签: c#

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。从该类派生的类的确切含义是什么?

3 个答案:

答案 0 :(得分:2)

由于B继承了A's(公共和受保护)成员,C会从B继承所有成员。这是继承的重点。

  

从该类派生的类的确切含义是什么?

这意味着派生类可以访问其基类的受保护成员。在这种情况下,C实际上是间接从A继承的。因此,它可以访问其基类的所有publicprotected成员。

答案 1 :(得分:2)

尽管TestC不是直接从TestA派生的,但它间接是因为TestB继承了TestA。我希望这会有所帮助。

答案 2 :(得分:2)

让我们换句话说:

"任何班级都可以访问其祖先的任何受保护成员"。

如果TypeATypeB的祖先且TypeBTypeC的祖先,则TypeATypeC的祖先。