title: overriding protected internal with protected!
body: <p>This is an <code>extension</code> for this <a href="https://stackoverflow.com/questions/2375556/overriding-and-overridden-methods-must-have-same-accessibility-so-why-isnt-same/2375590#2375590"><strong>question</strong></a> asked an hour ago.</p>
  
  <p>We cannot modify the <code>access modifiers</code>, when overriding a <code>virtual method</code> in <code>derived</code> class. Consider <code>Control</code> class in <code>System.Web.UI</code> namespace</p>
  
  <pre><code>public class Control : IComponent, IDisposable,...
  { 
     protected internal virtual void CreateChildControls()
     { }
     .
     .
  }
  </code></pre>
  
  <p>Now Consider This</p>
  
  <pre><code>public class someClass : System.Web.UI.Control
      { 
         // This should not compile but it does
          protected override void CreateChildControls()
          { }
  
         // This should compile but it does not
          protected internal override void CreateChildControls()
          { }  
      }
  </code></pre>
  
  <p>can any body explain this ? Thanks</p>