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

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

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


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

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

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

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

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

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

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

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




Предыдущий шаг Содержание Следующий шаг