русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Перегрузка методов


Дата добавления: 2015-07-09; просмотров: 405; Нарушение авторских прав


Напомним, что в классе имя метода уникально, т.е. нельзя определить два метода с одинаковым именем и различным числом параметров. По этой причине перегрузка метода базового класса (т.е. его замена на метод класса-потомка) происходит в том случае, если в классе-потомке есть метод, совпадающий по имени с методом базового класса. Количество параметров может отличаться!

 

Пример:

<?php
abstract class Base_Class
{
public function method1( $p1, $p2 )
{
echo "Вызвали method1 базового класса<br />";
}
}

class Child_Class1 extends Base_Class
{
// этот метод перегружает метод базового класса
public function method1( $p1 )
{
echo "Вызвали method1 класса потомка<br />";
}
}

class Child_Class2 extends Base_Class
{
public function method2( $p1 )
{
echo "Вызвали method2 класса потомка<br />";
}
}

$o1 = new Child_Class1();
$o2 = new Child_Class2();

// вызвали method1 потомка
$o1->method1( "1" );

// сигнатура вызова другая, но снова вызываем method1 потомка
$o1->method1( "1", "2" );

// вызвали method1 родителя, поскольку в Child_Class2 метод не перегружен
$o2->method1( "1", "2" );
?>

Полиморфизм в PHP обеспечивает:

· Возможность в классах-потомках перегрузить методы базового класса;

· Возможность, написав программу, ссылающуюся на базовый класс, использовать вместо базового класса классы-потомки. При этом вместо перегруженных методов базового класса будут использоваться методы из классов потомков с теми же именами.



<== предыдущая лекция | следующая лекция ==>
Создание конструктора и деструктора | Другие возможности полиморфизма


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.703 сек.