界面中的歧义

时间:2013-06-12 11:47:14

标签: object interface reference ambiguity

interface A
{
  int a = 10;
}

interface B
{
  int a = 10;
}

class Access implements A, B
{
}

class Demo
{
  public static void main(String args[])
  {
    Access ac = new Access();
    System.out.println(ac.a);   // line #1
  }
}

第1行引起歧义。我该如何删除它?不可能有不同接口的相同变量名吗?

2 个答案:

答案 0 :(得分:2)

System.out.println( ((A)ac).a);   

or
System.out.println( ((B)ac).a); 

如果您的变量存在冲突,则需要使用分辨率来访问特定接口的值。

答案 1 :(得分:2)

您必须分别将两个变量引用为A.aB.a;