-4

Если класс B расширяет класс A, класс B реализует Serializable, а класс A имеет общедоступную статическую инициализированную переменную, которая не является сериализуемой ... пытается написать объект класса B с writeObject() методом FileOutputStream, будет сериализовать несериализуемые унаследованный член из A для записи его в файл с остальными переменными класса B или он будет кидать NotSerializableException?Является ли дочерний класс сериализованным родительским классом, который не является сериализуемым?

+5

Почему бы вам не попробовать? – shmosel

+3

Почему вы не проверяете [документацию] (https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html)? – shmosel

+0

Франциско, люди ответили на ваш вопрос. Затем вы вытащили ковер из-под них, изменив вопрос и аннулировав их. Это * не *, как мы катаемся здесь. – Drew

ответ

1

Это работает, потому что статические поля не сохраняются при записи объекта по выходному потоку.

От documentation:

Механизм сериализации объекта по умолчанию записывает класс объекта, класс подписи и значения всех без переходных и не статических полей. Ссылки на другие объекты (кроме переходных или статических полей) также заставляют записывать эти объекты. Несколько ссылок на один объект кодируются с использованием ссылочного механизма обмена , так что графики объектов могут быть восстановлены до той же формы, что и при написании оригинала.

+0

извините, я имел в виду нестационарное ..: S – Francisco

Смежные вопросы