Erweitern der allgemeinen abstrakten Klasse und korrekte Verwendung von Super
public abstract class AbstractTool<AT extends AbstractThing> {
protected ArrayList<AT> ledger;
public AbstractTool() {
ledger = new ArrayList<AT>();
}
public AT getToolAt(int i) {
return ledger.get(i);
}
// More code Which operates on Ledger ...
}
public class Tool<AT extends AbstractThing> extends AbstractTool {
public Tool() {
super();
}
}
Wie rufe ich richtig super an um die zu bestehenAT
Generikum vonTool
zum AbstractTool-Konstruktor?
Es scheint egal, was ich wähleAT
zu sein, wenn ich erkläreTool
(Sagen,Tool<Thing>
), dass ich immer einen zurück bekommeAbstractThing
anstattThing
. Dies scheint den Zweck von Generika zu besiegen ...
Hilfe?