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.