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!");
			
		}