Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 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 ;
procedure TForm1 . Button1Click(Sender: TObject);
var
X: TMyType3;
begin
X := TMyType3 . Create;
try
X . B;
X . C;
finally
FreeAndNil(X);
end ;
end ;
procedure TMyType . A;
begin
ShowMessage(Name);
end ;
procedure TMyType2 . B;
begin
inherited Name := '12345' ;
A;
end ;
procedure TMyType3 . C;
begin
inherited inherited Name := 'abcde' ;
A;
end ;
|
Как в процедуре TMyType3.C исправить ошибку с переменной Name, чтоб она работала сквозь два родительских класса?