1

2 つのクラスがあり、一方は他方から派生しています。これらのクラスは両方とも、同じ名前の変数を導入します。派生クラスの変数は、スーパー クラスの変数を隠します。

派生クラスのメソッドからスーパークラスの変数を参照するにはどうすればよいですか?

type
  TClass1 = class
  protected
    FMyVar: Integer;
  end;

  TClass2 = class(TClass1)
  protected
    FMyVar: Integer;
  public
    procedure Foo;
  end;

procedure TClass2.Foo;
begin
  //here I want access to FMyVar from TClass1
end;
4

2 に答える 2

5

特別なことは何もありません。各サブクラスは、親でマークされたメンバーを除いて、親クラスのものに自動的にアクセスできますprivate

親と同じユニットで宣言されたサブクラスは、 とマークされたメンバーにアクセスできますprivatestrict private代わりに使用して、サブクラスが継承されたメンバーにアクセスできないようにします。

于 2013-04-17T20:49:05.057 に答える