Виртуальные и динамические методы не связаны с другими методами с тем
же именем в классах — наследниках. Если в классах — наследниках эти методы
перегружены, то при обращении к такому методу во время выполнения будет вы-
зываться тот из методов с одинаковыми именами, который соответствует классу
объекта, указанному при вызове. Например, если имеется базовый класс графиче
ских объектов TShape и ряд наследующих ему классов различных геометрических
фигур, и если в каждом из этих классов определен свой виртуальный метод Draw,
рисующий эту фигуру, то можно написать в программе:
var ShapeSrray: array[1..10] of TShape;
for i:=l to 10 do ShapeArray.Draw;
В этом коде в массив ShapeArray могут помещаться объекты разных классов,
наследующих TShape. В цикле for обращение к объектам производится как к объ-
ектам базового для них типа TShape. В этом случае для каждого объекта будет вы-
зываться виртуальный метод Draw именно этого объекта. Такой подход, облегчаю-
щий работу с множеством родственных объектов, называется полиморфизмом.
При объявлении в классе виртуальных и динамических методов после точки
с запятой, завершающей объявление метода, добавляются ключевые слова virtual
или dynamic. Например:
type
TShape = class
procedure Draw; virtual ;
end;
....
А вот ещё , если непонятно:
http://ru.wikipedia.org/wiki/Виртуальный_метод