본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Java] Subclass 는 Serializable 을 구현하고, Superclass 는 그렇지 않은 경우.

by 돼지왕 왕돼지 2017. 5. 16.
반응형

 [Java] Subclass 는 Serializable 을 구현하고, Superclass 는 그렇지 않은 경우.





Object 를 serialize 를 하면 상속 hierarchy 를 따라가며 직렬화 메커니즘을 수행한다.
이 과정에서 만약 Serializable 을 구현하지 않은 super class 를 만나면 이 매커니즘은 멈추게 된다.

Deserialize 할 때 Serializable 을 구현하지 않은 super class 는 stream 으로부터 복구되는 것이 아니라, empty argument constructor 가 호출되며 복구된다.

따라서 Superclass 의 내용을 복구해줄 필요가 없다면 그냥 ignore 하면 되는 것이고, super class 를 내가 수정할 수 없는데 함께 serialize 해주고 싶다면, subclass 에서 writeObject 와 readObject 를 override 해줌으로써 직접 super class 의 내용을 직렬화해주어야 한다.




반응형

댓글