Es gibt eine Super-Klasse, A, und es gibt viele Unterklassen, B, C, D ... Menschen können mehr Unterklassen schreiben. Jede Klasse hat die Methode dostuff(), jede ist in irgendeiner Weise anders.Objekt eine Klasse von Objekten in Java
Ich möchte ein Objekt, das jedes Objekt konstruiert, die zu A oder einer seiner Unterklasse gehören.
Zum Beispiel kann ich den Namen der Unterklasse oder ein Objekt dieser Klasse übergeben, und es wird ein anderes Objekt der Klasse erstellen.
Natürlich kann ich
A construct(A var){
stuff = var.dostuff();
domorestuff(stuff)
return new A(stuff);
}
B construct(B var){
stuff = var.dostuff();
domorestuff(stuff)
return new B(stuff);
}
C construct(C var){
stuff = var.dostuff();
domorestuff(stuff)
return new C(stuff);
}
schreiben, aber das ist nicht effizient. Ich muss jedes Mal ein paar neue Zeilen schreiben, wenn ich eine neue Unterklasse mache.
Es scheint, dass ich auch keine Generika verwenden kann. Weil ich dostuff() nicht für Objekte verwenden kann, die nicht in einer Unterklasse von A sind.
Was soll ich in dieser Situation tun?
Das ist großartig. Was, wenn ich den Konstruktor von t verwenden möchte? –
Das verwendet den Standardkonstruktor. Wenn Sie einen anderen Konstruktor verwenden möchten, müssen Sie getConstructor() verwenden –