(1)接口带来了多重继承,那是不是也带来了类似C++中的冲突呢? 我尝试过,如果两个借口有同名数据或者函数的话,当一个类去继承,编译时候同名函数好象是不会冲突的,但是同名数据有冲突,那应该怎么解决呢? 
(2)用二进制写文件时候,如果连续用writeUTF()写入一个一个的字符串,而且中间没有空格等标记符,为什么用readUTF()输出的时候,可以自动将他们分开输出呢?难道是写入的时候,自动加入类似于标记符的东西吗?
(3)我以int型写入二进制文件,但是我以double型输出,为什么输出的个数同以int输出一样呢,只是形式是double类型,int型和double型所占空间不是不一样吗?小弟我初学java,请大家指教,非常感谢!

解决方案 »

  1.   

    我也是初学者 只能回答第二个问题 
    writeUTF()会自动在字符串的末尾加上标记符 以便readUTF()识别
      

  2.   

    我的理解是下面的,不知道对不对。实际上,接口应该只有方法声明而不应该有属性字段,可以理解为是一个没有属性字段没有方法具体实现的抽象类。我看了Java基本类库里面的接口就是这样的,没有1个有属性字段的。
      

  3.   

    接口可以有属性的,不过他们都被自动定义为static final 的,我以前也没有注意这问题,刚刚调试了这个程序;
    interface test1{
    int i = 1;
    int get();
    }interface test2{
    int i = 2;
    int get();
    }public  class Test3 implements test1,test2 
    {
    public int get(){
    return test1.i;
    }
    public static void main(String[] args) 
    {
    Test3 o = new Test3();
    test1 o1 = o;
    test2 o2 = o;
    System.out.println(o.get());
    System.out.println(test2.i);
    System.out.println(o1.get());
    System.out.println(o1.i);
    System.out.println(o2.get());
    System.out.println(o2.i);
    }
    }
    如果return test1.i 改为 return i 的话他就会报错说你没有明确指定哪个i;同名方法可以估计是覆盖机制吧