为什么这会导致"字段名称不明确"错误?

Sam*_*iya 0 java compiler-errors interface

这是代码:

public class MyClass implements Inreface1, Inreface2 {
    public MyClass() {
        System.out.println("name is :: " + name);
    }

    public static void main(String[] args) {
        new MyClass();
    }
}
//Interface1
public interface Inreface1 {
    public String name="Name";
}
 //Interface2
public interface Inreface2 {
    public String name="Name";
}
Run Code Online (Sandbox Code Playgroud)

这是它导致的错误:

字段名称不明确

问题是什么?什么是暧昧的?

Rom*_*las 7

您的类正在实现两个接口,并且在这两个接口上name定义了变量.因此,当您name在类中调用时,Java无法确定变量是否引用Interface1.name或Interface.name.

那是你代码中的问题......

  • 修复它的方法是在它前面加上类名:``name is"+ Inreface1.name` (4认同)