Ja_Kazanova, Вот еще один пример, надеюсь теперь станет ясно почему так
error_reporting(-1);
abstract class Display
{
public function display()
{
echo "<pre>" . get_class($this) . "</pre>";
}
}
class OneDisplay extends Display
{
public function display()
{
echo "<pre>" . get_class($this) . "</pre>";
}
}
class TwoDisplay extends Display {
public function display()
{
echo "<pre>" . get_class($this) . "</pre>";
}
}
function display(Display $d)
{
$d->display();
}
$one = new OneDisplay;
$two = new TwoDisplay;
//$d = new Display; // Вызовет ошибку
display($one);
display($two);
/*
На экране появится следующее:
OneDisplay
TwoDisplay
OneDisplay
TwoDisplay
*/