Michilee: Extend, Implement, Abstract

Beitrag lesen

Hi Richard und Rouven,
vielen Dank euch beiden. Ja jetzt macht vieles Sinn.

Richtig, statische Variablen werden ohne konkretes Objekt aufgerufen. Sie haben daher unabhängig von Objekten der Klasse immer denselben Wert, weshalb man sie bisweilen mit globalen Variablen gleichsetzt. Sind sie darüberhinaus final, können sie nach einmaliger Wertzuweisung nicht mehr verändert werden. Es handelt sich dann um globale Konstanten.

den wert der static variablen kann ich auch nicht ändern? final ja sowieso nicht.

Doch, siehe Rouvens Antwort. Jede Klasse, die Serializable implementiert, ist dann selbst auch von diesem Typ und kann überall, wo ein Serializable als Datentyp gefordert wird, übergeben werden.

Oki, die eigentlich Frage bzw. mein Grübeln kommt unten noch.
Wenn ich in meiner Klasse extends Seriazible habe, kann ich ja davon ein Objekt mit meiner Klasse erzeugen.

Seriazible b = new MeineKlasse();

Dann wäre der Datentyp Seriazible? Habe ich das richtig verstanden?

Auto a= new Auto()
Auto a = new VW()

Auto und VW sind Klassen, a ist ein Objekt.

Okey, da kann ich meine Problematik besser schildern, wenn ich auf die Begriffe achte.

Also das Objekt a wäre von Datentyp Auto, da meine Klasse VW von Auto abgeleitet ist.

Ich könnte aber genauso
VW a = new VW() machen, obwohl Klasse VW von Klasse Auto (Elternelement?) abgeleitet ist.

Von abtract konnte man glaub kein Objekt bilden, aber von Interface schon.

Man kann von beidem keine Objekte erzeugen.

Siehe oben. Wenn ich das oben mit Seriazible richtig verstanden habe, kann ich von Seriazible nur extends machen, damit ich ein Objekt (also den Datentyp) erzeuge, denn implements Seriazible würde nicht gehen, wenn ich von abtract und Interface kein Objekt bilden darf.
Hoffentlich bin ich da auf dem richtigen weg und nerve euch weniger.

nochmals vielen dank
grüße