title: Overriding Methods in Multi-level Inheritence
body: <p>Given three parent/child classes, like this:</p>
  
  <pre><code>class A {
      public virtual void doSomething() {
          //do things
      }
  }
  
  class B : A {
      public override /*virtual?*/ void doSomething() {
          //do things
          base.doSomething();
      }
  }
  
  class C : B {
      public override void doSomething() {
          //do things
          base.doSomething();
      }
  }
  </code></pre>
  
  <p>Should class <code>B</code>'s <code>doSomething()</code> method have both <code>override</code> and <code>virtual</code> in its signature, since it also is overridden by the <code>C</code> class, or should only class <code>A</code> have <code>virtual</code> in its <code>doSomething()</code> method signature?</p>