それは私が思うばかげた質問です..しかし..Delphiで他のクラスの子クラスを宣言するとき、子は直接親メソッドを取得しますか?説明:「P」という名前のクラスは「C」という名前のクラスの親であり、「P」クラスには「Mth」という名前のメソッドがあります。'C.Mth'を呼び出すことは可能ですか、それとも'C'の宣言に何か気づきますか(コンストラクターを使用する可能性がありますか?)。
質問は変数についても同じです。
私は十分に明確になることを願っています..応答をどうもありがとう...
それは私が思うばかげた質問です..しかし..Delphiで他のクラスの子クラスを宣言するとき、子は直接親メソッドを取得しますか?説明:「P」という名前のクラスは「C」という名前のクラスの親であり、「P」クラスには「Mth」という名前のメソッドがあります。'C.Mth'を呼び出すことは可能ですか、それとも'C'の宣言に何か気づきますか(コンストラクターを使用する可能性がありますか?)。
質問は変数についても同じです。
私は十分に明確になることを願っています..応答をどうもありがとう...
はい。これは「継承」と呼ばれます。これは、親クラスのすべての属性が子クラスによって「継承」されることを意味します。子クラスで何も変更しない場合(仮想のオーバーライド、フィールドの追加、メソッドの追加など)、子クラスは親クラスと同じように機能します。継承により、子は親のすべての品質を共有するため、子クラスを親クラスを期待する他の関数に渡すことができます。
子クラスは、その親クラスのすべての保護されたパブリックおよび公開されたプロパティ、関数、およびプロシージャを継承します。
子クラスがそれらをオーバーライドしていなければ、特別な構文なしでそれらを直接呼び出すことができます。
例えば:
type
P = class
public
procedure Mth;
end;
C = class(P)
public
procedure Foo;
end;
// ... implementation ...
procedure C.Foo;
begin
Mth; // Calls the P.Mth procedure.
end;
ええ、親メソッドを子に属しているかのように呼び出すことができます。これは、OO階層の力の一部です。