大概没有试过吧. interface只能定义static变量, 即时没加static

解决方案 »

  1.   

    除了常量以外, 你不能在interface里面定义变量
      

  2.   

    是的,接口虽然是一种多重继承的替代,但并不是完全实现多重继承,这样子就是说,你在Java当中要牢牢记清,没有多重继承。不要妄想拉,那帮开发的家伙跟本就是跟c++背着走的但是你说的接口确实很有用,但是如果能从父类继承,那么一定不要再利用接口现在自定义的接口在这种几乎完美的语言里显得很苍白!
      

  3.   

    嘿嘿,概念不清楚,你在任何一个接口中写
     public String testStr;
    试试,肯定错嘛!
      

  4.   

    public class Father {
      public int ia = 1;  public Father() {
      }
    }public interface Interface1 {
      public int ia = 2;
    }public class Child extends Father
      implements Interface1
    {
      public Child() {
      }  public static void main(String[] args) {
        Interface1 child1 = new Child();
        System.out.println( child1.ia );//输出2    Father child2 = new Child();
        System.out.println( child2.ia );//输出1  }}只能这样区分了
      

  5.   

    如果确实存在二者名称相同了,且在接口中是静态的,
    请问在子类中直接取变量取的是哪一个呢?会发生什么呢?
    如下例:
    public class Father {
      public static int ia = 1;  public Father() {
      }
    }public interface Interface1 {
      public int ia = 2;
    }public class Child extends Father
      implements Interface1
    {
      public Child() {
      }
      public static void main(String[] args) {
        Child child1 = new Child();   //这里用Child定义。
        System.out.println( child1.ia );//输出什么???????  }}
      

  6.   

    楼上的   System.out.println( child1.ia );//输出什么???????会出错,编译不了的
      

  7.   

    System.out.println( child1.ia );//输出什么???????
    编译出错,说ia不明确。可以用oswicer(低人) 兄的解决方案,
    也可以用强制类型转换的方法如下:
    System.out.println((Father)child1.ia );//1
    System.out.println((Interface1)child1.ia );//2