Java génériques - substitution d'une méthode abstraite et avoir le type de retour de la sous-classe

Je suis en train de créer un jeu où un ensemble de sous-classes de remplacer une super-classe. Cette super-classe contient une méthode abstraite - le type de retour de ce qui devrait être celle de l'objet à partir de laquelle cette méthode a été appelée, tel qu'il se comporte effectivement comme ceci:

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

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

Je ne suis pas certain si une telle chose est possible, car je pense que les types de retour de toujours être la même pour le remplacer au travail - toutefois, j'ai pensé à la réponse, s'il existe, se trouve quelque part le long de cette ligne...

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

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

Merci pour toute aide.

edit: ajouté étend à la sous-classe de super-classe, duh

Je ne vois pas comment vous allez utiliser cela. Pourriez-vous me donner un exemple?

OriginalL'auteur Numeron | 2011-06-23