title: Why are interfaces useful? (OOP)
body: <p>I already know the fundamentals of the implements and interfaces. I don't understand when to use an interface. What is the requirement to have an interface?</p>
  
  <p>Example:</p>
  
  <pre><code>/// Interface demo
  Interface IDemo
  {
      // Function prototype
      public void Show();
  }
  
  // First class using the interface
  Class MyClass1 : IDemo
  {
  public void Show()
  {
      // Function body comes here
      Response.Write("I'm in MyClass");
  }
  }
  
  // Second class using the interface
  Class MyClass2 : IDemo
  {
  public void Show()
  {
      // Function body comes here
      Response.Write("I'm in MyClass2");
      Response.Write("So, what?");
  }
  }
  </code></pre>
  
  <p>These two classes have the same function name with different bodies. This can also be achieved without interfaces. What's the purpose of having the method reference? When I extend a superclass, at least I get the superclass's properties and methods.</p>
  
  <p>Please give me a clear explaining and a real world scenario for me to understand well.</p>