Просмотр поста

.
Screamer

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
*/