Як вже було зазначено вище, успадкування дозволяє одному об'єкту набувати властивості іншого об'єкта. Приклад цього процесу наведемо у наступному коді:
class a {
function test()
{
echo "a::test called";
}
function func()
{
echo "a::func called";
}
}
class b extends a {
function test()
{
echo "b::test called";
}
}
class c extends b {
function test()
{
parent::test();
}
}
class d extends c {
function test()
{
b::test();
}
}
$a = new a();
$b = new b();
$c = new c();
$d = new d();
$a->test(); // Виведення "a::test called"
$b->test(); // Виведення "b::test called"
$b->func(); // Виведення "a::func called"
$c->test(); // Виведення "b::test called"
$d->test(); // Виведення "b::test called"
З початку, ми оголосили клас А, потім клас В, що розширює клас А. Клас В має також метод test(), який перекриває оголошений в А, таким чином виводячи так званий b::test.
Таким чином розширення об’єктів буде обмеженим, бо ви зможете лише перевизначити функціональні можливості, що надаються «батьківському класу» , без будь – якої можливості повторного використання. На щастя, батьківські класи можна отримати за допомогою особливого parent:: namespace, як ми це робили для класу С вище, ви також можете отримати доступ до будь-яких інших класів предка як ми це робили, наприклад, в класі D.
Функціональна і адміністративна організація роботи колективів для розробки програмних проектів.