私の最上位クラスはTBaseDBで、これには子孫TCommonDB( があり、 とTCommonDBのように複数の子孫が存在TProdDBしますTDevDB)。
という名前の関数を各クラス定義に作成しましょうTest1。今のところ、ShowMessage('Some literal')実行されているコードを表示するだけです。
クラスの型は実行時までわかりません。共通のコードが必要ですが、動作は異なります。
私が欲しいのは次のようなものです:
var
MyObj: TBaseDB;
begin
//pseudo-code...
if RadioButton1.Checked then
MyObj := TBaseDB.Create
else
MyObj := TCommonDB.create;
MyObj.Test1;
end;
これを機能させることができないようで、クラス定義にあると思います。Test1次のように定義する必要があります。
- 変数を次のように宣言できます
TBaseDB。 - 作成されたクラスは または のいずれ
TBaseDBかTCommonDBであり、 - または?であるインスタンスに応じて、適切なプロシージャが呼び出されます。
TestTBaseDBTCommonDB