Абстрактные классы

Абстрактные классы - необходимы в качестве "классов про запас". Мы их просто объявляем но не используем. Их используют только в дочерних классах, как правило, переопределяя методы абстрактного класса.

<?php

abstract class A {
	private $a;
	function A_name () {
		echo "Name class: A";
	}
	// введем аюстрактный метод A_echo. Его можно опредлеить только в дочернем методе
	abstract public function A_echo () ;
}
class B extends A {
	private $b;
	function B_name () {
		echo "Name class:  B";
	}
	 public function A_echo () {
		echo "You are see abstract function";
	} 
}
// $obj = new A; мы не можем обратиться к абстрактному классу напрямую
// $obj->A_a(); и вызвать метод нельзя
$obj_B = new B;
echo  $obj_B ->A_name()."<BR>";
$obj_B ->A_echo();
// $obj_B->A_echo();
//Абстрактная функция не определяется в исходном классе нельзя записать {}. А только в дочернем.