title: C# Inheritance Problem
body: <p>Let's say I have 3 classes:</p>
  
  <p>GrandDad, Dad and Son. Son inherits from Dad, which inherits from GrandDad.</p>
  
  <p>GrandDad has 2 methods:</p>
  
  <pre><code>public virtual void foo();
  public virtual void do();
  </code></pre>
  
  <p>Dad inherits foo(), but overrides do();</p>
  
  <pre><code>public override void do();
  </code></pre>
  
  <p>If Son wants to modify foo(), is it acceptable to:</p>
  
  <p>make Dad override foo(), but simply call foo.base()? Then Son can override foo(), but Dad's foo() functionality remains the same?</p>
  
  <p>Or is that a hacky way?</p>