Лекции     Книги     Рефераты    
Диплом, курсовая на заказ

Наследование и полиморфизм

news date Авг.17.2008    categories Web-программирование > PHP    comments (0)

В данном уроке из серии “PHP и ООП” я расскажу Вам о том, как задействовать механизмы наследования и полиморфизма при программировании в стиле ООП на PHP.

Для создания производного класса от базового используется кодовая конструкция следующего вида:

<?
class A
{
// описание базового класса
}
class B extends A
{
// описание производного класса
}
?>

Производный класс имеет все те свойства и методы, присущие базовому классу, а также свои собственные свойства и методы. Ниже изложенный листинг показывает это наглядно:

<?
// создаём родительский класс…
class parent
{
function test1 ()
{
echo “test1 called!\r\n”;
}
}
// …и на его основе дочерний класс
class child extends parent
{
function test2 ()
{
echo “test2 called!\r\n”;
}
}
// при создании объекта дочернего класса…
$obj = new child;
// …можно использовать как методы родительского класса…
$obj->test1 ();
// …так и свои собственные методы
$obj->test2 ();
?>

Также в дочернем классе можно переопределить методы, заданные в родительском классе. Такие методы называются виртуальными.

Понятие полиморфизма также довольно легко объясняется на практике. Как я говорил в первом уроке по ООП, полиморфизм — ничто иное, как использование родительским классом методов дочернего класса.

Вот пример программы, использующий механизм полиморфизма (листинг не прокомментирован, но, думаю, Вы разберётесь самостоятельно):

<?
class parent
{
function test ()
{
echo “Calling test from parent”;
}
function call_test ()
{
$this->test ();
}
}
class child extends parent
{
function test ()
{
echo “Calling test from child”;
}
}
$obj = new child;
$obj->call_test ();
?>

Последняя строчка кода выведет текст “Calling test from child”, хоть функция call_test и не задана в классе child, но использует его методы. Как видно, что суть полиморфизма довольно проста, и полностью следует из идеи наследования.

Итак, мы уже разобрались с “тремя китами ООП”: инкапсуляцией, наследованием и полиморфизмом. В следующих уроках мы познакомимся с некоторыми функциями для работы с классами в PHP, а также моделью ООП в PHP5.

Обсуждения

Нет комментариев к “Наследование и полиморфизм”

Добавить комментарий

Вы должны войти



© 2009 - 2010 | Webteach.ru | Образовательный портал