問題タブ [template-method-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - NeverSwitch クラスが AlwaysSwitch クラスをオーバーライドするのはなぜですか?
テンプレート方式を採用しています。ゲームを作成し、AlwaysSwitch または NeverSwitch の 2 つのスイッチング クラスのいずれかを通過するドライバーが提供されました。次に、ドライバーは、Always Switch の試用版と、NeverSwitch の別の試用版を作成します。各試行は 100 回実行され、各ケースがゲームに勝った回数が集計されます。
これらのクラスはどちらも Game を拡張します。ゲームには、switching() という抽象メソッドがあります。どちらのスイッチング クラスもこのメソッドを継承します。両方のクラスに単純な print ステートメントを配置しました。AlwaysSwitch
「乗り換えたい」とNeverSwitch
「とどまります」
私の問題は、 を作成する Always switch トライアルでもnew Game g = new AlwaysSwitch();
、出力は常に「私は留まります」です。ではnew Game g = new NeverSwitch();
、出力は再び「I will stay.」です。
ドライバーで NeverSwitch 試用版をコメント アウトしようとしましたが、そうしないと AlwaysSwitch 試用版は機能しません。
neverSwitch クラスが alwaysSwitch クラスをオーバーライドしている理由がわかりません。
すべての結果は「私は残る」と言っています。