title: Why A non-parameterless constructor is still ok?
body: <p>Here is the interface definition specifies it must use a parameterless constructor to instantiate a new class of T, fine.</p>
  
  <pre><code>public interface IDatabase&lt;T&gt; where T : class, new()
  {...}
  </code></pre>
  
  <p>But the concrete class:</p>
  
  <pre><code>public class MyDatabase&lt;T&gt; : IDatabase&lt;T&gt; where T : class, new()
  {
    public MyDatabase(string conString)
    {...}
  }
  </code></pre>
  
  <p>Questions</p>
  
  <p>1 - if the first colon means MyDatabase is to implement the IDatabase interface, why still needs the second colon to specify the interface's constraints again?</p>
  
  <p>2 - is the inside constructor <code>public MyDatabase(string conString)</code> an override to the interface, if so then the second colon is not necessary, right?</p>