私は私が私のような行動やTObjectを、継承することができinhertedキーワードを使用することができます知っているクラス記述する場合:Delphiのサブクラス継承
type
TOperation = class(TObject)
constructor Create(dest, r1, r2: integer);
end;
そしてコンストラクタがinherited Create;
を持つことになりますが。以下のクラスを見てください:
type
TAddition = class(TOperation)
constructor Create(a1, a2: integer);
end;
TAdditionの最初の行は、それが、私はもちろんのTOperationの振る舞いを継承していますことを意味inherited Create;
ある場合。しかし、これは私がTObjectの振る舞いも継承していることを意味しますか? (これはTOperationのスーパークラスです)。
私が父のクラスのコンストラクタ(TAdditionを見てください)のコンストラクタを継承するとき、私はその動作だけを継承していますか?
TOperation = class(TOBject)
private
dest, v1, v2: integer;
public
constructor Create(dest, r1, r2: integer);
property destination: integer read dest;
property value1: integer read v1;
property value2: integer read v2;
end;
TMemoria = class(TOperation)
private
dest, r1: integer;
public
constructor Create(dest, r1: integer);
property destination: integer read dest;
property register1: integer read r1;
end;
constructor TOperation.Create(dest, r1, r2: integer);
begin
//inherit from TObject
inherited Create;
Self.r1 := r1;
Self.r2 := r2; //so on...
end;
constructor TMemoria.Create(dest, r1: integer);
begin
//inherit from TObject OR inherit from TOperation?
inherited Create;
end;
あなたははるかに明確にする必要があります。あなたのアウトラインでは、すべてではなく一部の行動ビットを継承します。親コンストラクタをバイパスし、TObjectコンストラクタにまっすぐ進みます。コードを記述すると混乱する。それを示す。 mcve。 –
はい、作成者の実装を追加してください –
私はシナリオを追加しました。私の質問は、基本的にサブクラスがTObjectまたは父のクラスから継承している場合です。 –