main方法试图访问var,但导致调用不明确。为什么?Base1中的实例变量var不可访问(可见?)无论如何,从静态上下文中。
class Base1 {
int var;
}
interface Base2 {
public static final int var = 0;
}
class Test extends Base1 implements Base2 {
public static void main(String args[]) {
System.out.println("var:" + var);
}
}
发布于 2014-07-07 22:26:45
要使其明确,请将接口名称作为限定前缀:
class Test extends Base1 implements Base2 {
public static void main(String args[]) {
System.out.println("var:" + Base2.var);
}
}
发布于 2014-07-07 22:36:16
在最初的步骤中,编译器将在您扩展的类和您实现的接口中查找变量var。因为它在第二步中在两个地方都找到了一个变量,所以它显示出多义性。
https://stackoverflow.com/questions/24612590
复制相似问题