Код:
type
TMyType = class
private
FName: String;
public
procedure A;
property Name: String read FName write FName;
end;
TMyType2 = class(TMyType)
private
FName: Integer;
public
procedure B;
property Name: Integer read FName write FName;
end;
TMyType3 = class(TMyType2)
private
FName: Double;
public
procedure C;
property Name: Double read FName write FName;
end;
{ TMyType }
procedure TForm1.Button1Click(Sender: TObject);
var
X: TMyType3;
begin
X := TMyType3.Create;
try
X.B;
X.C;
finally
FreeAndNil(X);
end;
end;
{ TMyType }
procedure TMyType.A;
begin
ShowMessage(Name);
end;
{ TMyType2 }
procedure TMyType2.B;
begin
inherited Name := '12345';
A; // message "12345"
end;
{ TMyType3 }
procedure TMyType3.C;
begin
inherited inherited Name := 'abcde';
A; // message "abcde"
end;
Как в процедуре TMyType3.C исправить ошибку с переменной Name, чтоб она работала сквозь два родительских класса?