Php tipi ima arayüzleri ve soyut sınıflar ile birlikte almıyor?

0 Cevap php

Ben ilk etapta soruyu yazarken daha bir kod örneği sorunu görmek için çok daha kolay olacak düşünüyorum. İşte benim php kodu:

<?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 );

Yukarıdaki kod aşağıdaki hata neden olur:

Ölümcül hata: ConcreteClass Bildirgesi :: yöntem () AnAbstractClass :: metot ile uyumlu olması () olmalıdır

Sorun php uyumlu olarak AnAbstractClass imzalarını :: yöntem ve ConcreteClass :: yöntem tanıma gibi görünüyor olmamasıdır. Ben yanlış bir şey yapıyorum? Teşekkürler!

0 Cevap