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!