OOP Statische Klassen-Attribute vererben

VRComputing

Mitglied
Hallo an alle!

Folgende Idee:

Ich möchte eine abstrakte Klasse (z.B. Klasse_A ) schreiben...

Code:
public abstract class Klasse_A
Code:
{
Code:
private static int x;
Code:
private static int y;
Code:
private static int z;
Code:
}

... die jedem Erben die statischen Attribute x,y und z verschafft. Mein Ziel ist es x,y und z als Standardwerte für weitere Initialisierungen zu verwenden. Durch die Vererbung soll garantiert werden, dass jeder Erbe x,y, und z als statische Attribute hat, aber jede Klasse für sich unterschiedliche Werte für x,y und z. Wenn ich nun die Klasse_B von Klasse_A erben lasse...

Code:
public class Klasse_B extends Klasse_A
Code:
{
Code:
}

... hat diese dann ihre "eigenen" x,y und z, oder immer die aus Klasse_A?

Noch einmal in anderen Worten: Jede konkrete Klasse die von Klasse_A erbt soll die statischen Attribute x,y und z als Konstanten beinhalten, aber jede Klasse soll ihre eigenen Werte für x,y und z haben.

Vielen Dank.

Mit freundlichen Grüßen,

VRComputing
 
statische Attribute vererben sich nicht. Sie sind einfach da. Wenn du sie aber natuerlich als private deklarierst gibt es sie nur in der Oberklasse.

aber jede Klasse für sich unterschiedliche Werte für x,y und z. Wenn ich nun die Klasse_B von Klasse_A erben lasse..
schau dir nochmal "static" an, ein wert fuer alle.... wenn es unterschiedliche Werte sein sollen, so mach es zu einfachen instanzvariablen, die lassen sich vererben und jeder hat seine eigenen
 
Zuletzt bearbeitet von einem Moderator:
Aber meine Idee war es ja gerade das jedes Objekt vom Typ z.B. Klasse_B auf den statischen Wert von x,y oder z zugreifen kann. Damit ich durch die Änderung an einem Attribut das verhalten alles Objekte auf einmal verändern kann. Das heißt ich muss einfach in jeder Klasse einzeln x,y und z statisch deklarieren?
 
wenn jede Klasse unterschiedliche Werte braucht, die nicht fuer jede Instanz untersch. sein sollen, dann ja.
 
Da static sich immer auf die Klasse bezieht, in der es steht, kann man es auch nur in Zusammenhang mit dieser einen Klasse verwenden. Also musst du wohl oder übel in jeder deiner Implementierungen die statischen Variablen definieren (inkl. getter und setterm na Prost Neujahr...).
 

Zurück
Oben