Perdona/te il termine, ma è una c*****a a parer mio.
Ovvio che se conosci C++ e/o C#, imparare Java non è difficile. Poi dipende da che si intende per imparare Java...
Comunque il modo migliore per imparare resta lo studio.
Posso mostrarti questo codice, scritto la notte scorsa e postato ad un utente sul forum.
codice:
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);
}
public void altroMetodo() {
System.out.println("Altro metodo");
}
}
class TestE {
public static void main(String[] args) {
Giocatore g;
g = new Giocatore();
g.update(1);
g = new GiocatoreNelMenu();
g.update(2);
g = new GiocatoreNelloScontro();
g.update(3);
// g.altroMetodo();
}
}
Riusciresti a capire, anche eseguendolo, perchè funziona in quel determinato modo? E se ti chiedessi perchè se decommento la chiamata al metodo mi restituisce un errore, sapresti rispondermi?
Come noti, il modo migliore, è studiare 
Ripeto, se conosci C# la sintassi è molto simile, quindi non ci vorrà molto ad abituarti ad essa.