In der Methode SetName ist ein kleiner Fehler:
Delphi-Quellcode:
procedure TAuto.SetName(Value: string);
begin
FName := Value;
end;
Ich würde im Konstruktor immer den konstruktor der Superklasse aufrufen (auch wenn es hier unnötig ist)
Delphi-Quellcode:
constructor TAuto.Create(Name: string);
begin
inherited Create;
FName := Name;
end;