title: Kotlin: resolve generic inheritance
body: <p>After reading same articles I still cannot solve generics problem:</p>
  
  <p>I have BaseActivity:</p>
  
  <pre><code>abstract class BaseActivity : MvpAppCompatActivity(), BaseView {
      abstract fun getPresenter():BasePresenter&lt;BaseView&gt;
  }
  </code></pre>
  
  <p>BaseView interface for it</p>
  
  <pre><code>interface BaseView : MvpView
  </code></pre>
  
  <p>And for sure BasePresenter</p>
  
  <pre><code>open class BasePresenter&lt;T : BaseView&gt; : MvpPresenter&lt;T&gt;() 
  </code></pre>
  
  <p>Then I create BaseConnectionView</p>
  
  <pre><code>interface BaseConnectionView : BaseView
  </code></pre>
  
  <p>And BaseConnectionPresenter</p>
  
  <pre><code>class BaseConnectionPresenter&lt;T : BaseConnectionView&gt; : BasePresenter&lt;T&gt;()
  </code></pre>
  
  <p>So when I create BaseConnectionActivity </p>
  
  <pre><code>abstract class BaseConnectionActivity : BaseActivity(),BaseConnectionView {
      override abstract fun getPresenter(): BaseConnectionPresenter&lt;BaseConnectionView&gt;
  }
  </code></pre>
  
  <p>I have error:</p>
  
  <pre><code>Return type is BaseConnectionPresenter&lt;BaseConnectionView&gt;, 
  which is not a subtype of overridden 
  public abstract fun getPresenter():BasePresenter&lt;BaseView&gt;
  </code></pre>
  
  <p>But <strong>it is</strong> subtype!</p>
  
  <p>How can I solve this problem?</p>