русс | укр

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

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

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

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


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

ПОЛИМОРФИЗМ. РАННЕЕ И ПОЗДНЕЕ СВЯЗЫВАНИЕ


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


Полиморфизм – это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. В рамках ООП поведенческие свойства объекта определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноимённый метод и реализовать в нём нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноимённых метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.

В Turbo Pascal полиморфизм достигается не только описанным выше механизмом наследования и перекрытием методов родителя, но и их виртуализацией, позволяющей родительским методам обращаться к методам потомков.

Одним из преимуществ объектно-ориентированного стиля программирования является возможность использования динамического связывания (позднего). Все методы, которые рассматривались до этого – статические. Компилятор размещает их и решает все ссылки на них во время компиляции (раннее связывание). Позднее связывание означает, что ссылки на методы решаются во время выполнения. В Turbo Pascal методы, подразумевающие позднее связывание, объявляются виртуальными.

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

 



<== предыдущая лекция | следующая лекция ==>
АБСТРАКТНЫЕ ТИПЫ ДАННЫХ. ИНКАПСУЛЯЦИЯ | ДИНАМИЧЕСКИЕ ОБЪЕКТЫ


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


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

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

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


 


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

 
 

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

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