Ich habe eine Oberklasse wie folgt definiert;Ist es besser, Superklasseninstanzen an den Konstruktor zu übergeben?
public class superClass{
private superClass superObj;
public superClass() {
}
public superClass(superClass superObj) {
this.superObj = superObj;
}
public start()...
public receive()..
Und meine Unterklasse ist wie;
public class subclass extends superclass {
@Override
public receive(){
........
}
public static void main(String args[]){
Superclass superTst = new Superclass(new subclass());
superTst.start();
...
}
Hier ist meine Unterklasse nicht wirklich „ist-a“ Beziehung mit Super. Aber ich möchte so erweitern, weil ich in der Oberklasse eine Verarbeitungsausgabe mache (Oberklasse erzeugt einen neuen Thread und führt eine Verarbeitung durch, so dass ich die Ausgabe an der Oberklasse erhalten kann), auf die von Unterklasse zugegriffen werden muss.
Ist das theoretisch richtig?
Auf welche Weise ist der Unterklasse kein 'superclass'? Es ist wirklich schwer zu sagen, was Sie zu tun versuchen, aber dieses Design * riecht *. –
Wenn es nicht * ist-a * dann ** nicht ** die Typen ableiten. –