title: Class inheritance, forcing new classes to implement certain functions
body: <p>Ok so i'm messing around with a few things, specifically interfaces.</p>
  
  <p>Say I have a class 'Cat' with its base as 'Animal' Animal has a method in it like so</p>
  
  <pre><code>public virtual void Walk()
  {
      // Do walking stuff
  }
  </code></pre>
  
  <p>So Cat would override it with:</p>
  
  <pre><code>public override void Walk()
  {
      // Do cat specific walking stuff
  }
  </code></pre>
  
  <p>Simple right?</p>
  
  <p>Here's my question though, is there a way to force cat to override the base Walk() method? So if another developer added a Dog class they would be forced to implement their own Walk method (even if it was just base.Walk()) ?</p>
  
  <p>So interfaces kind of solves this, this is what i've tried</p>
  
  <p>Cat : Animal : Interface
  Animal has to implement the Walk method, but Cat doesn't</p>
  
  <p>Cat : Animal, Interface
  Cat has to implement the Walk method, but if the developer doesn't add or forgets the ',Interface' then it will 'break' it.</p>
  
  <p>can someone give me some pointer as to go about this ?</p>
  
  <p>Thanks.</p>
  
  <p><strong>Edit 1</strong></p>
  
  <p>Here's what I am aiming for, i hope it makes it clearer.</p>
  
  <pre><code>public class Animal
  {
      public Animal()
      {
          Console.WriteLine("Animal");
      }
  
      public virtual void Walk()
      {
  
      }
  }
  
  public class Cat : Animal
  {
      public Cat() : base()
      {
          Console.WriteLine("Cat");
      }
  
      public override void Walk()
      { 
  
      }
  }
  
  class Dog : Animal
  {
  
      public Dog()
      {
  
      }
  
      public override void Walk()
      {
          // Dog implementation 
          // and / or calls base method
          base.Walk();
      }
  }
  </code></pre>
  
  <p>This would create an error</p>
  
  <pre><code>class Dog : Animal
  {
  
      public Dog()
      {
  
      }
  }
  </code></pre>