Wenn du es objektorientiert machst, dann brauchst du einfach eine Basisklasse, von der alle anderen Klassen abgeleitet sind.
Ein kleines Beispiel: Du willst Daten über CD/DVDs verschiendener Arten (Musik, Video, Bilder) speichern:
Delphi-Quellcode:
type
TListEntry = class
end;
TListNode = class
private
Data: TListEntry;
Next: TListNode;
end;
TAudioDisc = class(TListEntry)
//hier Klassen-Interface
end;
TVideoDisc = class(TListEntry)
//hier Klassen-Interface
end;
TImageDisc= class(TListEntry)
//hier Klassen-Interface
end;
var
ln: TListNode;
begin
//...
ln.Data := TImageDisc.Create;
Nun kannst du alles, was vn TListEntry abgeleitet ist, dranhängen.