具有相同变量名称的Java接口是否由另一个变量扩展?

具有相同变量名称的Java接口是否由另一个变量扩展?,java,inheritance,interface,Java,Inheritance,Interface,我有接口A和B,其中有一个名称相同但值不同的变量 Interface A { public static final int a = 50; public void fun(); } Interface B { public static final int a = 60; public void fun(); } 另一个接口C扩展了A&B Interface C extends A, B { public void fun(); }

我有接口A和B,其中有一个名称相同但值不同的变量

 Interface A {

    public static final int a = 50;

    public void fun();

    }



Interface B {

public static final int a = 60;

public void fun();

}
另一个接口C扩展了A&B

Interface C extends A, B {    

public void fun();

}
类D实现接口C

Class D implements C {



public void fun() {

/* Some code */
}
}

如果我用D.a.怎么办?
类D继承了哪一个静态变量a。

它对编译器来说是不明确的,并且在使用时会导致错误,例如字段是不明确的。由于该字段是
静态的
,因此您可以根据类名进行解析,例如
A.A
B.A

。执行此操作时,对常量
a
的引用变得不明确,需要您明确指定要使用哪一个:

public int fun() {
    return a; // Get an error below
}
错误:对“a”的引用不明确


你试的时候发生了什么?您可以回答自己的问题。字段名称不明确
public int fun() {
    return B.a; // Works fine
}