Java输出说明

时间:2019-06-17 14:57:20

标签: java inheritance

我正在运行以下Java代码:

public class Base {
    private static boolean goo = true;

    protected String bar = "Base:" + foo();

    public static void main(String[] args) {
        Base base = new Sub();
        System.out.println(base.bar);

    }

    protected static boolean foo() {
        goo = !goo;
        return goo;
    }

}


public class Sub extends Base {
    protected String bar = "Sub:" + foo();
}

我不明白为什么输出是:“ Base:False”。在调试器中,似乎基础对象有2个成员,名称为“ bar”(可能吗?),为什么它是指Base栏而不是Sub栏?

谢谢

0 个答案:

没有答案