class ClassOne
{
static int i, j = 191919;
{
--i;
}
{
j++;
}
}
public class ClassTwo extends ClassOne
{
static
{
i++;
}
static
{
--j;
}
public static void main(String[] args)
{
System.out.println(i);
System.out.println(j);
}
}
我得到的输出为
i=1
j=191918
2条答案
按热度按时间axkjgtzd1#
static int i, j = 191919;
仅将j
初始化为191919。i
初始化为默认值0。63lcw9qa2#
首先,ClassOne 是静态创建的,将 j 与 191919 赋值。
然后,静态地创建 ClassTwo,然后执行 * 静态初始化块 *,将 i 递增1,随后将 j 递减1。
您的值现在分别为 1 和 191918。
我相信你的差异在于 * 示例初始化块 *,在 ClassTwo 内。
这些只在新示例上执行,而不是在 * 静态 * 初始化时执行。