2つの基本クラスがあると仮定ContainerしGizmoます。クラスContainerには、クラスのインスタンス変数がありますGizmo。
今、私はサブクラス化Container(それを呼び出しますSubContainer)し、サブクラス化Gizmo(SubGizmo)もします。のいくつかのメソッドでは、持っていないが持っているSubContainerいくつかのプロパティにメッセージを送信する必要があります。これらのメッセージを送信できるように、ivarをオーバーライドしてクラスに含める方法はありますか?GizmoSubGizmoSubGizmoSubContainer
今のところSubGizmo、そのようなプロパティやメソッドを使用する必要があるたびに、継承したivarをキャストすることで機能させることができます。
これが私がそのような振る舞いをしたい理由です:私はすでに動作するゲームを持っていますが、追加するモードが多いほど、それを維持するのが難しくなります。各モードで実行されるメソッドを変更/追加したい場合; 3つの異なるゲーム(コントローラーオブジェクト)に移動して変更を加える必要があります。
サブクラス化することで、メインのゲームメカニズムを基本クラスに保持し、モードごとにサブクラスを作成したいと思いました。このように、基本クラスで行った変更は、各モードに反映されます。ただし、各コントローラーとゲームオブジェクトには、異なるモード用の新しいメソッドがあり、相互にメッセージを送信します。これが私の問題の原因です。