c# hiding confusion
<p>This is confusing to me please expalin me the behaviour of this?</p>

<p>A declaration of a new member hides an inherited member only within the scope of the new member.
Copy</p>

<pre><code>**class Base
{
   public static void F() {}
}
class Derived: Base
{
   new private static void F() {}   // Hides Base.F in Derived only
}
class MoreDerived: Derived
{
   static void G() { F(); }         // Invokes Base.F
}**
</code></pre>

<p><strong>In the example above, the declaration of F in Derived hides the F that was inherited from Base, but since the new F in Derived has private access, its scope does not extend to MoreDerived. Thus, the call F() in MoreDerived.G is valid and will invoke Base.F.</strong></p>

<p>I am not understanding that how <code>static void G() { F(); }</code> can access the base class f method when it can access all methods of it's immediate super class and super class hides the f method of base class </p>
