>>30
>自分で多々井を使うような場合はとても必要なのだとわかりますが
これがどのレベルの多胎のことを言ってるのか分からないけど

type TMyObject = class;
TMyObject2 = class(TMyObject); constructor Create; virtual; end;
TMyClass = class of TMyClass constructor Create; override; end;

function CreateObject(MyClass: TMyClass): TObject;
begin
 Result := MyClass.Create;
end;

とするときvirtual/overrideがあればCreateObject(MyClass), CreateObject(MyClass2)は
それぞれ期待したインスタンスを生成できるが
なければ両方とも基底クラスであるTMyClassのインスタンスが生成されてしまう。

だから判断基準はクラス参照経由でコンストラクタが呼ばれる可能性があるかどうか。ということ。