使用Java时,有没有办法在子类通过声明另一个相同名称来影响超类的实例变量时获得编译器警告(使用Eclipse,如果重要)?例如:
class A {
String variable;
A() {
variable = "A";
}
}
class B extends A {
int variable;
B() {
variable = 1;
}
}
B b = new B();
System.out.println("Variable value: " + b.variable + ", " + ((A) b).variable);
// prints out: "Variable value: 1, A"
我希望在B
中警告变量已经存在。
答案 0 :(得分:6)
是。在Eclipse中转到
Preferences->Java->Compiler->Errors/Warnings
在该窗格中,有一个关于名称阴影和冲突的小节,其中包含您要查找的选项。