Статические, виртуальные и динамические методы (общие сведения)

   
На этом шаге мы приведем краткую характеристику перечисленных методов.

   
В Object Pascal сохранены все три типа (статические, виртуальные, динамические) методов Borland Pascal, оперирующих полями объектов,
а также добавлена новая разновидность динамических методов - методы обработки сообщений. По умолчанию все методы являются статическими.

   
Примечание.
Не следует путать динамические объекты и динамические методы. Это объекты в Object Pascal могут быть только динамическими, а методы, по-прежнему, -
и статическими, и виртуальными, и динамическими.

   
Дадим определения двум терминам объектно-ориентированной терминологии, касающимся реализации методов.

   
Ранним связыванием называется процесс статического связывания методов с объектами во время компиляции.

   
Поздним связыванием называется процесс динамического связывания методов с объектами во время выполнения.

   
Раннее связывание реализовано для статических методов, а позднее - для виртуальных, динамических методов и методов обработки сообщений.

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

   
В описаниях всех типов методов допускается применение зарезервированного слова inherited, которое обозначает имя непосредственного предка того класса, в котором объявлен метод,
использующий inherited.

   
На следующем шаге мы рассмотрим статические методы.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий