2012-04-06 13 views
0

2つのJavaクラスで、クラスAがSerializableを実装し、クラスBがAを拡張する場合、デフォルトではクラスBのSerializableも使用されますか?私が理解しているところから、そうです。Javaのシリアライゼーションと継承

+1

どうぞ試してみてください。 –

答えて

1

はい。これは、Javaの継承の概念に従います。 Aは直列化可能であり、BはAを拡張するので、Bは直列である。注目すべき点は、Bが「デフォルト」のシリアライズ可能ではないことに注意してください.BがAを延長している限り、選択肢はありません。

+0

あなたの最後の文章が何を意味するのか分かりません。 – EJP

+0

これは、クラスBを拡張すると、Aは常に直列化可能とみなされることを意味します。 –

+0

あなたはすでにあなたの文章の中でそれを言った。最後の文は物事を混乱させるだけです。私はそれを削除します。 – EJP

2

はい、これは正しいです。ただし、AおよびBのすべてのフィールドにもSerializableオブジェクトが含まれている必要があります。そうでない場合は、シリアル化しようとすると実行時にNotSerializableExceptionが発生します。