Estoy tratando de utilizar bloques estáticos como esto:Comportamiento de bloques estáticos con la herencia
tengo una clase base llamada Base.java
public class Base {
static public int myVar;
}
Y una clase derivada Derived.java
:
public class Derived extends Base {
static
{
Base.myVar = 10;
}
}
Mi función main
es así:
public static void main(String[] args) {
System.out.println(Derived.myVar);
System.out.println(Base.myVar);
}
Esto imprime la salida puesto como 0 0
donde como esperaba 10 0
. ¿Alguien puede explicar este comportamiento? Además, si quiero que mis clases derivadas establezcan los valores para una variable estática, ¿cómo puedo lograr eso?
Porque la clase no se inicializa, por lo que el bloque estático no se inicializa. pero descomenta (nuevo Derivado()) imprimirá 10,10, pero nunca imprimirá 10,0 – Guest