次の質問に対する答えがすべての主要な OOP 言語で同じかどうかを理解しようとしています。そうでない場合、それらの言語はどのように異なりますか。
メソッドと;A
を定義するクラスがあるとします。メソッドは メソッドを呼び出します。のサブクラスオーバーライド メソッド(つまり、適切な構文を使用して、が呼び出されるたびにクラス内の実装が使用されるようにします)。act
jump
act
jump
A
B
jump
jump
B
b
私はクラスのオブジェクトを持っていますB
。それが class であるかのように正確に動作するようにしますA
。jump
つまり、の実装を使用して を実行したいのですA
。さまざまな言語でのオプションは何ですか?
たとえば、何らかの形式のダウンキャストでこれを達成できますか? または、呼び出すメソッドを認識しているプロキシ オブジェクトを作成することでしょうか?
クラスの新しいオブジェクトを作成し、 と の間でA
内部状態の共有を慎重に設定することは避けたいと思います。これは、明らかに将来性がなく、複雑であるためです。また、コピーするデータが大量にある可能性があるため、の状態をクラスの新しいオブジェクトにコピーすることも避けたいと思います。a
b
b
A
アップデート
私は特に Python についてこの質問をしましたが、これは Pythonで達成することは不可能であり、技術的には可能だと思われます...ちょっと..
技術的な実現可能性は別として、設計の観点からこれを行うことに反対する強い議論があるようです。それについては別の質問で尋ねています。