-4

Si la classe B étend la classe A, la classe B implémente Serializable et la classe A possède une variable publique statique initialisée qui n'est pas sérialisable ... essayer d'écrire un objet de classe B avec writeObject() méthode de FileOutputStream, sérialisera la non sérialisable membre hérité de A pour l'écrire dans le fichier avec le reste des variables de la classe B ou il va lancer NotSerializableException?Est-ce que la classe enfant sérialise les membres de la classe parent qui ne sont pas sérialisables?

+5

Pourquoi ne pas essayer? – shmosel

+3

Pourquoi ne vérifiez-vous pas la [documentation] (https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html)? – shmosel

+0

Francisco, les gens ont répondu à votre question. Ensuite, vous avez retiré le tapis sous eux en changeant la question et en les invalidant. C'est * pas * comment nous roulons ici. – Drew

Répondre

1

Cela fonctionne car les champs statiques ne sont pas enregistrés lorsque vous écrivez votre objet sur un flux de sortie.

De l'documentation:

Le mécanisme de sérialisation par défaut pour un objet écrit la classe de l'objet, la signature de la classe, et les valeurs de tous les champs non transitoires et non statiques. Les références à d'autres objets (sauf dans les champs transitoires ou statiques ) provoquent également l'écriture de ces objets. Plusieurs références à un même objet sont codées à l'aide d'un mécanisme de partage de référence de sorte que les graphiques des objets puissent être restaurés à la même forme que lors de l'écriture de l'original.

+0

désolé, je voulais dire non statique ..: S – Francisco