如果一个类实现了两个接口而这两个接口中有两个同名的变量为什么编译能通过?
例如:class Demo1 implements A,B{
public void test(){
//System.out.println(this.num);
}
}interface A{
int num = 2;
}interface B{
int num = 3;
}
这里编译能通过为什么(输出会出错我能理解)

解决方案 »

  1.   

    分开理解,JAVA虚拟机有编译期和运行期之分。
      

  2.   


    public class Demo1 implements A, B {
        static int num = 4;    static {
            System.out.println(A.num);
        }
        public static void main(String args[]) {
            System.out.println(B.num);
        }
    }interface A {
        int num = 2;
    }interface B {
        int num = 3;
    }很和谐啊..  怎么都不会错嘛.