Java generics - überschreiben einer abstrakten Methode und mit return-Typ der Unterklasse

Ich versuche zu erstellen, wo eine Reihe von Unterklassen einer Oberklasse überschreiben. Diese übergeordnete Klasse enthält eine abstrakte Methode - der Rückgabetyp von denen im Idealfall sein, dass das Objekt, von dem diese Methode aufgerufen wurde, so dass es verhält sich so:

public abstract class SuperClass{
  public abstract SuperClass getSelf();
}

public class SubClass extends SuperClass{
  @Override
  public SubClass getSelf(){
    return this;
  }
}

Ich bin nicht sicher, ob so etwas möglich ist, wie ich denke, dass die Rückkehr-Typen haben immer das gleiche zu sein, um für das überschreiben zu arbeiten - jedoch denke ich die Antwort, sollte eine vorhanden ist, liegt irgendwo entlang dieser Linie...

public abstract class SuperClass{
  public abstract <? extends SuperClass> getSelf();
}

public class SubClass extends SuperClass{
  @Override
  public SubClass getSelf(){
    return this;
  }
}

Vielen Dank für jede Hilfe.

edit: Hinzugefügt, erweitert Oberklasse zu Unterklasse, duh

InformationsquelleAutor der Frage Numeron | 2011-06-23

Schreibe einen Kommentar