Dadurch das die abgeleitete Klasse im Assign 'inherited' aufruft, werden alle Daten kopiert, welche in der jeweiliger Klasse vorhanden sind.
Somit kopiert jede Klasse nur ihre Teilmenge...
Delphi-Quellcode:
type
TMyClass1 = class(TPersistent)
public
Nr : Integer;
NachName : string;
Vorname : string;
Telnr : string;
procedure Assign(Source: TPersistent); override;
end;
TMyClass2=Class(TMyClass1)
public
PLZ : string;
FremdNr : Integer;
procedure Assign(Source: TPersistent); override;
end;
implementation
{ TMyClass1 }
procedure TMyClass1.Assign(Source: TPersistent);
begin
inherited;
if Source is TMyClass1 then
Nr := TMyClass1(Sender).Nr;
NachName:= TMyClass1(Sender).NachName;
Vorname := TMyClass1(Sender).Vorname;
Telnr := TMyClass1(Sender).Telnr;
end;
end;
{ TMyClass2 }
procedure TMyClass2.Assign(Source: TPersistent);
begin
inherited;
if Source is TMyClass2 then
PLZ := TmyClass2(Sender).PLZ;
FremdNr := TmyClass2(Sender).FremdNr;
end;
end;