AT
TTest2 = class sealed (TTest1)
и procedure Test(); override; final;
, но судя по дизассемблеру разницы нет. Но и не в этом вопрос. Вопрос в том, что виртуальные методы нельзя инлайнить - а это самая классная вещь для небольших методов. Они могут оптимизироваться вплоть до сворачивания до 1-2 ассемблерных команд. А виртуальные методы в Delphi не девиртуализируются.