Funktionen in Python nur am Anfang

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
lunar

Als Klassenattribut (aka statische Variable) kann das doch auch in Java nicht funktionieren. Wie sollte das den ausgewertet werden?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Nope, dies hier funktioniert:

Code: Alles auswählen

public class Foo {
	static Bar bar = Bar.baz;
}

public  class Bar extends Foo {
  static Bar baz = new Bar();
  static {
    System.out.println(Foo.bar);
  }
}
Ruft man `new Foo().bar` auf, erhält man ein `Bar`-Exemplar, allerdings zeigt das `println`, dass wenn die Klasse `Bar` initialisiert wird, offensichtlich `Foo` noch nicht initialisiert wurde. In Java ist es nicht notwendig, dass der class initializer der Oberklasse vor dem der Unterklasse ausgeführt wird.

Stefan
lunar

Aha, danke für die Erklärung :)
Antworten