Visto che mi serviva solo il nome del giocatore ho pensato di salvarmi solo il nome e creare l'istanza di GiocatoreUmano in Cerica().
così funziona!!!!!
Il problema allora era il salvataggio o il caricamento dell'intera classe Giocatore umano!!!! in essa ci sono dei metodi protected. dici che sia colpa loro?
codice:// Salva lo stato della partita corrente // @param nomeFile attributo di tipo String public void salva (String nomeFile) { try{ FileOutputStream outFile = new FileOutputStream(PATH_SAVE + nomeFile + ".sav"); ObjectOutputStream outStream = new ObjectOutputStream(outFile); outStream.writeObject(new String(Sfidante.daiNome())); outStream.writeObject(new Integer(this.Credito)); outStream.close(); video.stampaMsg("Partita Salvata con successo!"); }catch(IOException exc){ video.stampaMsg("Errore nell'I/O. Partita non Salvata!"); } } // Carica lo stato di una partita precedentemente salvata // @param nomeFile attributo di tipo String public void carica (String nomeFile) { try{ FileInputStream inFile = new FileInputStream(PATH_SAVE + nomeFile + ".sav"); ObjectInputStream inStream = new ObjectInputStream(inFile); try{ this.Sfidante = new GiocatoreUmano((String)inStream.readObject(), video); this.Credito = ((Integer)inStream.readObject()).intValue(); }catch(ClassNotFoundException exc){ video.stampaMsg("Classi non trovate!"); System.exit(1); } inStream.close(); }catch(IOException exc){ video.stampaMsg("Errore nell'I/O. Partita non Caricata!"); System.exit(1); } video.stampaMsg("Partita Caricata con successo!"); }