掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
親子孫継承したメソッド (ID:149713)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
技術的には直接それを可能にする方法はありません。 ところで"クラス孫"と"クラス子"は本当に継承関係にあるのが正しいのでしょうか? "クラス孫"で"メソッドA"を呼び出したときに、"クラス子"の"メソッドA"の動作をさせたくないのだとすると、その継承関係は正しく分析できていない可能性があります。 それはともかく、回避策としては、"クラス親"の"メソッドA"の内容を、protectedなメソッドに移し、必要に応じてそれを呼ぶようにする、という感じでしょうか。 type TFooX = class(TObject) protected procedure DoA; public procedure ProcA; virtual; end; TFooXX = class(TObject) public procedure ProcA; override; end; TFooXXX = class(TObject) public procedure ProcA; override; end; procedure TFooX.DoA; begin { もともとProcAでやっていた動作 } end; procedure TFooX.ProcA; begin DoA; end; procedure TFooXX.ProcA; begin inherited; { 他に何かをする } end; procedure TFooXXX.ProcA; begin DoA; { TFooXX.ProcAとは別の何かをする } end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.