Tommy: Werden "implements"-Angaben auch vererbt?

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?

  1. 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

  2. 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

    1. 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?