title: Override interface parent method that use type hinting
body: <p>Let's say my boss have a class and interface:</p>
  
  <pre><code>class HisBar {}
  
  interface HisFooInterface
  {
      public function doSomethingWithBar(HisBar $bar);
  }
  </code></pre>
  
  <p>and I have my own class that may or may not extends <code>HisBar</code></p>
  
  <pre><code>class MyBar extends HisBar {}
  </code></pre>
  
  <p>I wish I could do this :</p>
  
  <pre><code>interface MyFooInterface extends HisFooInterface
  {
      public function doSomethingWithBar(MyBar $bar);
  }
  </code></pre>
  
  <p>But, Yes, I get the error :</p>
  
  <blockquote>
    <p><strong>Fatal error</strong>: Declaration of MyFooInterface::doSomethingWithBar() must
    be compatible with HisFooInterface::doSomethingWithBar(HisBar $bar) in
    path\to\MyFooInterface.php on line xx</p>
  </blockquote>
  
  <p>I mean, I need use an instance of the interface but with different type hinting, is that even possible ? Is there any way to do this ? How to change type of the argument ? Thanks.</p>