title: Inheritance from generic interfaces
body: <p>I don't know how to solve a problem with generic interfaces.</p>
  
  <p>Generic interface represents factory for objects:</p>
  
  <pre><code>interface IFactory&lt;T&gt;
  {
      // get created object
      T Get();    
  }
  </code></pre>
  
  <p>Interface represents factory for computers (Computer class) specyfing general factory:</p>
  
  <pre><code>interface IComputerFactory&lt;T&gt; : IFactory&lt;T&gt; where T : Computer
  {
      // get created computer
      new Computer Get();
  }
  </code></pre>
  
  <p>Generic interface represents special factory for objects, which are cloneable (implements interface System.ICloneable):</p>
  
  <pre><code>interface ISpecialFactory&lt;T&gt; where T : ICloneable, IFactory&lt;T&gt;
  {
      // get created object
      T Get();
  }
  </code></pre>
  
  <p>Class represents factory for computers (Computer class) and cloneable objects:</p>
  
  <pre><code>class MyFactory&lt;T&gt; : IComputerFactory&lt;Computer&gt;, ISpecialFactory&lt;T&gt;
  {
  
  }
  </code></pre>
  
  <p>I get compiler error messages In MyFactory class:</p>
  
  <pre><code>The type 'T' cannot be used as type parameter 'T' in the generic type or method 'exer.ISpecialFactory&lt;T&gt;'. There is no boxing conversion or type parameter conversion from 'T' to 'exer.IFactory&lt;T&gt;'.   
  
  The type 'T' cannot be used as type parameter 'T' in the generic type or method 'exer.ISpecialFactory&lt;T&gt;'. There is no boxing conversion or type parameter conversion from 'T' to 'System.ICloneable'.  
  </code></pre>