Zastąp parametr metody interfejsem potomnym jako nowy parametr
Nie mogę zrozumieć, dlaczego ten kod nie działa w PHP?
<?php
interface Engine {
function run();
}
interface HydroEngine extends Engine {
function run();
}
interface Car {
function setEngine(Engine $engine);
}
interface WaterCar extends Car {
function setEngine(HydroEngine $engine);
}
?>
Wydaje się, że nie łamie żadnych reguł OOP, ale dlaczego daje mi błąd?
Fatal error: Declaration of WaterCar::setEngine() must be compatible with Car::setEngine(Engine $engine)