継承したクラスのメンバ変数を差し替えたい
Java で以下のようなことを簡潔に記述可能でしょうか。
稚拙な質問ですが、慣習等あればご回答いただけたらと思います。
よろしくお願いいたします。
class A { B b; A() { this.b = new B(); } // 以下、b を使ったメソッドなど } class B {} class A' extends A { // b を使ったメソッドの動作はそのままに b を B' のインスタンスとしたい } class B' extends B {}
自分で考えたのは、以下のようなコードです。
そもそもクラス A のメンバにクラス B のインスタンスを生成せず、クラス A を継承した A' でメンバ変数を付加する形です。
もちろん、B' で拡張された実装を利用する場合は b を B' でキャストする必要があります。
class A { B b; A() { } // 以下、b を使ったメソッドなど } class B {} class A' extends A { A'() { this.b = new B'(); } // b を使ったメソッドの動作はそのまま // B' で拡張された実装を利用する場合は b を B' でキャストする } class B' extends B {}