【发布时间】:2021-01-09 16:35:45
【问题描述】:
我有这个代码:
class A {
protected static final String foo = "FOO";
}
class B extends A {
public static final String foo;
}
我希望System.out.println(B.foo) 打印FOO,但它打印null。
我知道我可以通过将B 中的字段声明替换为以下方法来解决此问题:
class B extends A {
public static final String foo() { return foo; }
}
是否可以继承受保护的静态字段并将其公开?
B 类用作模拟对象,并添加这些括号,因此调用是 B.foo() 而不是 B.foo 并不重要,但我只是感兴趣是否可以摆脱它们,并且如果是,是否有充分的理由不这样做。或者如果我的方法在其他方面完全错误。
【问题讨论】:
标签: java class inheritance static