title: How do interfaces solve the diamond problem?
body: <p>I need to discuss one thing with you. I have been reading about the interface that it is a contract between the class the interface that the class will provide implementation of all the methods of the interface. To solve the famous diamond problem, we have interfaces. 
  Like (I am using C#)</p>
  
  <pre><code>public interface IAInterface
  {
       void aMethod();
  }
  
  public interface IBInterface
  {
       void aMethod();
  }
  </code></pre>
  
  <p>Now</p>
  
  <pre><code>public class aClass : IAInterface, IBInterface
  {
       public void aMethod()
       {
  
       }
  }    
  </code></pre>
  
  <p>By above code, it is said that aClass has provided the implementation of both the methods of the interfaces. My confusion is: If it is a contract between the class and the interface then how can we say that contract with both the interfaces is fulfilled?</p>
  
  <p>A real world example,
  Like I have contract with Jack that I will give him 5 dollars at the same time I also have contract with Ben that I will give him 5 dollars, now by providing 5 dollars to one of them (either Jack or Ben) how can I say I have fulfilled the contract with both of them? </p>
  
  <p>My question may seem childish but that is confusing me a lot.</p>