相关疑难解决方法(0)

使用子接口覆盖方法参数作为新参数

我无法弄清楚为什么这段代码在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);
}

?>
Run Code Online (Sandbox Code Playgroud)

它似乎没有打破任何OOP规则,但为什么它给我一个错误?

Fatal error: Declaration of WaterCar::setEngine() must be compatible with Car::setEngine(Engine $engine)

php oop

15
推荐指数
1
解决办法
3821
查看次数

标签 统计

oop ×1

php ×1