Abstrakte Klasse + Statische Variable

fmacloud

Mitglied
Ich habe ein Problem mit statischen Variablen und abstrakten Klassen. Wie schaffe ich es den wenn ich in einer abstrakten Klasse eine statische Variable definiere, diese dann durch eine erbende Klasse statisch (sprich beim Programmstart) zu verändern?

Also:

Code:
public abstract class abstrakt {
   public static String name;
   }

Code:
public class person extends abstrakt {
   public person(){
      name = "Peter";
   }
}

Somit würde ja erst beim Erzeugen eines neuen person-Objekts der Name gesetzt werden, allerdings benötige ich das Setzen des Namens bereits beim Starten des Programms.
 
Hi,

das sollte mit einem static-initializer block gehen,
public class person extends abstrakt {
{
name = "Peter";
}
}

diese Blöcke werden nämlich so weit ich weiß aufgerufen, sobald die Klasse von einem Classloader geladen wird.

Martin
 
Ne funktioniert leider nicht, wenn ich versuche name aufzurufen bekomme ich null als Ergebnis:

Code:
public class persontest {

	public static void main(String[] args) {
		System.out.println(person.name);

	}

}
 
das Attr. name hängt an der abstrakt Klasse. Also musst du immer mit abstrakt darauf zugreifen: 'abstrakt.name'
static Attr. werden in der Art wie du es versuchst nicht vererbt. Sie hängen immer nur an der Klasse in der sie definiert wurden.
 
Zurück