SubClass变量不会再次初始化

Xar*_*ara 0 java

我有我的主类,我称之为子类.

我的子类包含一些公共静态变量

    public class SubClass2 extends Main {


     public static  long a = 0;
     public static  long b = 0;
     public static  long c= 0;

    public void Analyze(int number)
    {
      b=2;

    //some code
     }
    }
Run Code Online (Sandbox Code Playgroud)

在main中我调用SubClass2的对象.我希望每次当我在main中创建子类2的新对象时,它初始化所有变量= 0但是当我接受变量b的print语句时.它打印出来像4.它将以前的值与新值相加.

在此输入图像描述

Dav*_*d M 6

static在这种情况下,不应声明您的字段.这就是他们每次都没有被初始化的原因.甲static字段被初始化一次只,然后由类的每个实例共享,并且根据可访问性,也以外的类.

导致该值的逻辑4必须在您替换的代码中//some code,但这并不是真正相关的.

如果出于某种原因这些实际应该是static每次实例化实例时初始化的字段,那么您必须在类的构造函数中手动初始化它们.但我会严重质疑导致这种情况的设计......