【发布时间】:2013-07-02 16:02:24
【问题描述】:
我知道并完全同意通过接口共享常量被视为bad practice,但我没有选择这种实现。随便:
interface SuperClassConstants {
public static final String CONSTANT = "super";
}
interface SubClassConstants extends SuperClassConstants {
public static final String CONSTANT = "sub";
}
class SuperClass implements SuperClassConstants {
}
class SubClass extends SuperClass implements SubClassConstants {
public SubClass() {
System.out.println(CONSTANT);
// The field CONSTANT is ambiguous
}
}
为什么模棱两可?常数不是隐藏的吗?我以为 Java 会理解我期待的 "sub"...
【问题讨论】:
-
但是您的
SubClass类可以访问这两个接口...
标签: java hide constants ambiguity