У меня есть два интерфейса с одинаковыми именами методов. Но оба метода имеют разные подписи. Согласно моей информации, два интерфейса с одинаковыми именами методов и одна и та же подпись не будут работать. Но в этом случае подпись (то есть число аргументов) различна. Тогда почему программа не работает?Реализация двух интерфейсов с одинаковыми именами методов, но с разными сигнатурами
<?php
interface Car {
public function setModel($name);
}
interface Vehicle {
public function setModel();
}
class miniCar implements Car, Vehicle {
private $model;
public function setModel($name)
{
$this -> model = $name;
}
public function setModel()
{
echo 'do nothing';
}
}
$obj = new miniCar();
?>
Вся цель интерфейса, чтобы заставить классы, которые реализуют его, чтобы иметь определенную подпись, так что наличие двух интерфейсов с разными сигнатурами для того же метода не имеет никакого смысла, так как нет перегрузки методов в PHP. –