title: Declaration not compatible with interface (PHP)
body: <p>Let's say I have one parent class with two child classes like this</p>
  <pre><code>abstract class Vehicle {
      public function setManufacturer(string $manufacturer) { ... }
  }
  
  class Bicycle extends Vehicle {
      public function addSaddle() { ... }
  }
  
  class Car extends Vehicle {
      public function setSpeedLimit(float $limit) { ... }
  }
  </code></pre>
  <p>Now I want to use these objects with an interface like this</p>
  <pre><code>interface VehicleInterface {
      public function create(Vehicle $vehicle);
  }
  
  class BicycleService implements VehicleInterface {
      public function create(Bicycle $bicycle) {
          $bicycle-&gt;setManufacturer('Some company'); // Common for all Vehicle objects
          $bicycle-&gt;addSaddle(); // Common only for Bicycle objects
      }
  }
  </code></pre>
  <p>It seems that this is not possible since <code>BicycleService create(...)</code> is not compatible with the interface. Is there any way around this other than removing type hints?</p>