title: Why would you want to hide a method using `new`?
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/1014295/c-new-keyword-in-method-signature">C# - new keyword in method signature</a>  </p>
  </blockquote>
  
  
  
  <p>Let's say I have 3 classes: GrandDad, Dad, Son. Son inherits from Dad, which inherits from GrandDad.</p>
  
  <p>Each class implements foo.</p>
  
  <pre><code>// GrandDad class: 
  public virtual void foo()
  
  // Dad class: 
  new public virtual void foo()
  
  // Son class: 
  public override void foo()
  </code></pre>
  
  <p>I don't understand the reason as to why Dad would use the <em>new</em> keyword. As I understand, using <em>new</em> hides a method. Why would you want to do this?</p>
  
  <p>I read the MSDN explanation of new, but the discussion was only mechanical, rather than architectural.</p>
  
  <p>Thanks</p>