Type Php allusion à ne pas s'entendre avec les interfaces et les classes abstraites?

Je pense que ça va être beaucoup plus facile de voir le problème dans un exemple de code que pour la rédaction de la question en premier lieu. Voici mon code php:

<?php

interface AnInterface
{
        public function method();
}    

class AClass implements AnInterface
{
        public function method()
        {
                echo __METHOD__;
        }
}    

abstract class AnAbstractClass
{
        abstract public function method( AnInterface $Object );
}

class ConcreteClass extends AnAbstractClass
{
        public function method( AClass $Object )
        {
                $Object->method();
        }
}

$Object1 = new ConcreteClass();
$Object2 = new AClass();

$Object1->method( $Object2 );

Le code ci-dessus les causes de l'erreur suivante:

Erreur fatale: Déclaration de ConcreteClass::methode() doit être compatible avec celle de AnAbstractClass::methode()

Le problème est que php ne semble pas être reconnaissant la signature de AnAbstractClass::méthode et ConcreteClass::méthode comme compatible. Suis-je en train de faire quelque chose de mal? Merci!

  • S'il vous plaît, prenez l'habitude de poster le message d'erreur de votre code à générer. Poster du code sans affichage de la sortie (ou d'erreur) est inutile.
InformationsquelleAutor Muc | 2010-12-30