title: What is the proper way to declare methods to be implemented by child classes?
body: <p>I've created a parent class that has common methods, but there are methods that I want to be implemented by child classes. i.e. Click Execution methods. </p>
  
  <p>What is the proper way to implement this? </p>
  
  <pre><code>public Parent {
      CancelCommand = new RelayCommand(CancelClicked, CancelCanExecute);
      private void CancelClick(object param) {
          // Do stuff
      }
  }
  
  public Child : Parent {
      private bool CancelCanExecute(object param) {
          // Do stuff
          return true;
      }
  }
  </code></pre>
  
  <p>Where CancelClick is hosted by the parent class, and CancelCanExecute is handled by the child class.</p>
  
  <p>Would I use an extern? Or should I use interfaces? If I use override in the child class, it doesn't force me to have to implement the method. I'm not sure I should change the parent class to an abstract because it has non-abstract methods and such.</p>