title: Forcing partial base Initialization (and methods) in Inherited Class Constructor C# (like abstract does to methods) - work around to do it
body: <p>I am having a C# <code>abstract</code> class which have some methods to be implemented by its children.</p>
  
  <p>Though it is so, the initialization values for those children consist of two parts: one which is the same as the parent, and another one which is unique to the children.</p>
  
  <pre><code>public abstract class parentClass {
      public abstract bool IsInputValid(string input); //children must implement this
      public parentClass () {
         //Some shared initialization
      }
  }
  </code></pre>
  
  <p>If the class is not <code>abstract</code> we could do something like this to implement that</p>
  
  <pre><code>public class parentClass {
      public parentClass (string input) {
         //Some shared initialization
      }
  }
  
  public class childClass : parentClass {
      public childClass (string input) : base (input) {
         //Some unique initialization
      }
  }
  </code></pre>
  
  <p>But that cannot be done using <code>abstract</code> class and some more, the method not need not to be implemented (since it is not abstract). </p>
  
  <p>So I am in a dilemma here. On one hand, I want to have some base initialization called and on the other, I also want to have some methods enforced.</p>
  
  <p>So my question is, <strong>how do we normally implement such case</strong>? On one hand it is enforcing some base initialization, and on another some methods.</p>
  
  <p><em>Note: I am new to <code>abstract</code> class so I would be glad to receive any inputs regarding it.</em></p>
  
  <p>Where do I declare wrongly (if any)? If we cannot do so, is there a way to get around to produce the same result (that is, to enforce the child class to use certain signature for constructor)?</p>