più passa il tempo, più mi convinco sia una cosa inutile.
quel che vorrei fare io è qualcosa del tipo:

class Giocatore {

public void update(int elapsedTime) {
System.out.println("Update Giocatore "+elapsedTime);
}
}
class GiocatoreNelMenu extends Giocatore {

public void update(int elapsedTime) {
System.out.println("Update GiocatoreNelMenu "+elapsedTime);
}
}

class GiocatoreNelloScontro extends Giocatore {
public void update(int elapsedTime) {
System.out.println("Update GiocatoreNelloScontro "+elapsedTime);
}
}

class TestE {
public static void main(String[] args) {
Giocatore g;

g = new Giocatore();
g.update(1);
GiocatoreNelMenu gm = g;
gm.update(2);
GiocatoreNelloScontro gs = g;
gs.update(3);
}
}

output:
Update Giocatore 1
Update GiocatoreNelMenu 2
Update GiocatoreNelloScontro 3

insomma vorrei che in condizioni particolari la mia classe si comporti in modi significamente differente rispetto il comportamento ordinario.