Werden "implements"-Angaben auch vererbt?
Tommy
- java
0 Slyh0 Henryk Plötz0 Tommy
Hallo!
Angenommen man hat eine Klasse OberKlasse, die das Serializable-Interface implementiert.
public class OberKlasse implements Serializable
Nun leitet man hiervon eine andere Klasse ab:
public class UnterKlasse extends OberKlasse
Implementiert diese Unterklasse nun automatisch auch Serializable oder muss ich das expliziet hinzufügen?
Hallo,
Implementiert diese Unterklasse nun automatisch auch Serializable oder muss ich das expliziet hinzufügen?
Die JavaDoc zu Serializable sagt dazu schon im 2. Satz: "All subtypes of a serializable class are
themselves serializable."
Gruß
Slyh
Moin
Implementiert diese Unterklasse nun automatisch auch Serializable oder muss ich das expliziet hinzufügen?
Ja, wenn du in Java vererbst, wird alles mitvererbt was die Elternklasse hatte, also zum Beispiel auch die implementierten Methoden des Interfaces. Deine Kindklasse hat also alles nötige um Serialisiert zu werden. Aber: Es sind natürlich noch die alten Methoden der Elternklasse. Wenn deine Kindklasse also irgendwelche eigenen Instanzenvariablen hat, willst du die Methoden wahrscheinlich überschreiben, da ansonsten nur die Variablen die auch in der Elternklasse drin waren mitserialisiert werden. (Andererseits könnt ich mich aber auch irren und Java hat für sowas eine eingebaute Kristallkugel, ist schon ein bisschen her, seit ich das letzte mal serialisiert habe)
--
Henryk Plötz
Grüße aus Berlin
Hallo und Danke!
Kann mir vielleicht noch jemand sagen, was passiert, wenn meine zu serialisiernede Klasse Variablen von Typen hat, die selbst nicht serialisierbar sind. Also soetwas:
public class Klasse implements Serializable {
NichtSerialKlasse k;
}
Wird jetzt die Variable k auch serialisiert? Wenn nicht, wie mache ich das am besten, wenn ich NichtSerialKlasse selbst nicht ändern kann?