Why is "internal const" being overridden in a child class but "protected const" can't?

Sample code:

```
    class A
    {
        internal const string iStr = "baseI";
        protected const string pStr = "baseP";

        void foo()
        {
            string s = B.iStr; //childI
            string t = B.pStr; //baseP
        }
    }

    class B : A
    {
        internal new const string iStr = "childI";
        protected new const string pStr = "childP";
    }

```

Expected B.pStr to return "childP".