継承したクラスのメンバ変数を差し替えたい
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 {}