title: Error CS0534 - does not implement inherited abstract member
body: <p>I have the 4 following classes:</p>
  
  <pre><code>public abstract class Base
  {
       abstract public void DoIt();
  }
  
  public class TW: Base {}
  public class RW: TW 
  {
      public override void DoIt() {}
  }
  public class IW: TW
  {
      public override void DoIt() {}
  }
  </code></pre>
  
  <p>Usage:</p>
  
  <pre><code>var transaction = new TW();
  transaction.DoIt();
  </code></pre>
  
  <p>I am not clear why I am getting the following error:</p>
  
  <blockquote>
    <p>Error CS0534  'TW' does not implement inherited abstract member
    'Base.DoIt()'</p>
  </blockquote>
  
  <p>If all the "leaves" derived classes (RW and IW) overrides it, why also (TW) need to override it? I may missing something since I remember that it was not a must. I do not want to override it in TW since I do not have any valid implementation to write there.</p>
  
  <p>I was expecting to have the ability to write something like:</p>
  
  <pre><code>public override abstract void DoIt();
  </code></pre>
  
  <p>What is the correct implementation?</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>According to answers I got and due to some limitation, I will have to implement it as following:</p>
  
  <pre><code>public override void DoIt()
  {
      //Not getting to this code, it is overriden by the derived classes
  }
  </code></pre>
  
  <p>Is that acceptable?
  I feel that maybe something in the architecture is wrong if I am getting into a such situation.</p>