title: How does overloading a Virtual method differ from a Non-Virtual method?
body: <p>What is the difference between these two:</p>
  
  <ul>
  <li>Declaring the base class function virtual and changing the derived class
  function.</li>
  <li>Overloading an inherited non-virtual function.</li>
  </ul>
  
  <p>When would you use one over the other?</p>