スーパークラスを次のように定義しました。スーパークラスのインスタンスをそのコンストラクタに渡す方が良いでしょうか?
public class superClass{
private superClass superObj;
public superClass() {
}
public superClass(superClass superObj) {
this.superObj = superObj;
}
public start()...
public receive()..
私のサブクラスは次のとおりです。
public class subclass extends superclass {
@Override
public receive(){
........
}
public static void main(String args[]){
Superclass superTst = new Superclass(new subclass());
superTst.start();
...
}
ここで、私のサブクラスは実際にはスーパークラスと "is-a"の関係ではありません。しかし、スーパークラスでは、いくつかの処理出力(スーパークラスは新しいスレッドを生成して処理するので、スーパークラスで出力を得ることができます)をサブクラスでアクセスする必要があるため、このように拡張したいと思います。
これは理論的に正しいですか?
はあなたのサブクラスではない 'superclass'のですか?あなたがしようとしていることを言うのは本当に難しいですが、このデザインは臭いです。 –
* is-a *でない場合は、**型を派生しません。 –