Le nombre d’arguments d’une méthode de la classe fille peut-il être différent ?
PHP propose un modèle d’héritage strict, qui veut que les méthodes re-déclarées dans la classe fille prennent au minimum le même nombre d’argument que la méthode de la classe mère.
class Gateau{
private $nbParts = 6;
public function vendre($nbParts, $destinataire)
{
echo ‘Je vends ‘.$nbParts. ‘ parts de gâteau à ‘.$destinataire;
}
public function getParts()
{
echo ‘ Mon objet ‘.__CLASS__.’ a ‘.$this->nbParts. ‘ parts.’;
}
}
class Tarte extends Gateau{
private $nbParts = 8;
public function vendre($nbParts)
{
//Je définis une méthode de la classe fille, dont le prototype m’indique
// que j’ai plus d’arguments que la mm méthode de la classe mère
echo ‘Je vends ‘.$nbParts. ‘ parts de gâteau’;
}
}
Mais en réalité, PHP me laisse (toujours la souplesse du langage) définir une méthode fille, dont la signature est différente de la méthode de la classe mère qu’elle redéfinit.La réponse est donc : oui.
