@tommie-lie: Was ist mit Metaklassen? Da macht folgendes Konstrukt Sinn:
Delphi-Quellcode:
type
TBlubb = class;
TSpinatBlubb = class(TBlubb);
TBlubbClass = class of TBlubb;
var
bc: TBlubbClass;
b: TBlubb;
begin
bc := TSpinatBlubb;
b := bc.Create;
end;
Möglicherweise muss in so einem Fall der Konstruktur virtuell sein. Mit Betonung auf
möglicherweise, denn ich hab diese Metaklassen nie eingesetzt.