title: Interface and class merging when extending an abstract class
body: <p>first of all thanks for your time.</p>
  
  <p>My problem is :</p>
  
  <pre><code>abstract class Father {
      abstract property: string;
  }
  
  interface Son extends Father {
  
  }
  
  class Son {
  
  }
  </code></pre>
  
  <p>In this case, there is <a href="http://www.typescriptlang.org/play/#code/IYIwzgLgTsDGEAJYBthjAgYsCALAplAgN4BQCFCokM8CADlAPb2EQCeAXAjQJYB2AcwDcpAL6lSAiIQBmcfAgDKTfgnwAPGfwAmGbHkIlJE0ijQYVasuKA" rel="nofollow noreferrer">no warning</a> but i think it should because <code>Son</code> doesn't implement properly <code>Father</code> as it should define the <code>property</code> in the class <code>Son</code></p>
  
  <h1>First question</h1>
  
  <p>Is this really a bug?</p>
  
  <h1>Second question</h1>
  
  <p>If this is a bug, what if <code>property</code> is not required (eg: <code>?:</code>)?</p>
  
  <p>I think it should because <code>property</code> is abstract</p>
  
  <h1>Third question</h1>
  
  <p>The Github issue tracker ask if this is a breaking change, so is it ?</p>
  
  <h1>why this question is important to me</h1>
  
  <p>let's take this code:</p>
  
  <pre><code>abstract class Father {
      abstract property?: string;
  }
  
  abstract class Mother {
      constructor() {
          // do something
      }
  
      abstract method: () =&gt; void;
  }
  
  interface Son extends Father {
  
  }
  
  class Son extends Mother{
      method: () =&gt; void;
  
  }
  </code></pre>
  
  <p>in my case, i need that <code>super</code> refer to <code>Mother</code> in the <code>Son</code> class but i need to respect the contract of <code>Father</code> as <code>property</code> is not required but <code>abstract</code>, So i think a warning should be trigger for not respecting <code>Father</code>.</p>
  
  <p>Is this possible ?</p>