So könnte es gehen:
Delphi-Quellcode:
...
type
TFischClass = class of TFisch;
...
var
SourceItem: TFisch;
...
SourceItem := (Source as TAquarium).GetFisch(i);
Item := TFischClass(SourceItem.ClassType).Create;
Item.Assign(SourceItem);
...
Schwieriger wird es, wenn die abgeleiteten Klassen eigene Konstruktoren haben, die irgendetwas Wichtiges machen. Aber dann kannst du ja nochmal fragen...