我在写代码时,意外将Object[] o = new String[]{"3","2"}写成了Object o = new String[]{"3","2"},一看,居然编译没报错。我就有点纳闷了,还有类似Object o = new String[]{"3","2"}这种语法的吗?o是一个Object变量,怎么样才可以通过o将数组中的数据遍历出来呢?还有这种语法一般在什么时候会用到呢?谢谢高人指教!

解决方案 »

  1.   

    把o在转会String[]就可以遍历了
      

  2.   

    第一次听说这个问题。试了一下 Object oo = new String[]{"3","2"};
    Object []o = (Object[])oo;
    for (int i = 0; i <  o.length; i++) {
    String str = (String) o[i];
    System.out.println( str );
    }
      

  3.   

    String类是Object的子类,当然可以把String类的实例赋给父类实例,这是多态的一种。
    例如:
    interface I1{
        void test1();
    }
    interface I2{
        void test2();
    }
    class Test implements I1,I2{
        public void test1(){
            System.out.println("测试1");
        }
        public void test2(){
            System.out.println("测试2");
        }
    }
    class Run{
        public static void main(String []args){
             I1 i1 = null;
             I2 i2 = null;
             Test t = new Test();
             t.test1();//输出“测试1”
              t.test2();//输出“测试2”
             i1 = t;//因为Test实现了I1,所以可以将Test的实例赋给I1类型的变量。
             i1.test1();//输出“测试”
              i2.test2();//输出“测试2”
        }
    }