title: c# best practices for interface and inheritance
body: <p>I have an abstract base class with an interface.</p>
  
  <pre><code>interface ISubmit {
      bool SubmitFile();
  }
  
  public abstract class SubmitMaster : ISubmit {
      public abstract bool SubmitFile();
  }
  
  public class SubmitRoute : SubmitMaster {
      public override bool SubmitFile() {
          //...
      }
  }
  </code></pre>
  
  <p>The base class has some other implemented methods used by the child classes, but I need to ensure that each child class has the SubmitFile() method and each one needs its own block for it.  Currently, its working just fine, but I feel that what I've done is rather redundant.  Do I even need the interface?  Or is making the base class and SubmitFile() abstract the wrong move?</p>
  
  <p>What is the best practice in this case?</p>