程序1:
TestDuoTai tdt=new TestDuoTai();
String s=tdt.toString();
System.out.println(s);
类TestDuoTai和Test,Test1,Test2一点关系都没有。。
当然只输出TestDuoTai的hashcode。
要输出你的结果:
String s=tdt.toString(); -〉String s=o[i].toString();
程序2:
   调用了Object.toString()方法。。这个Object不是程序中定义
的Object[],而是所有类的基类Object.

解决方案 »

  1.   

    呵呵,是你自己的弄错了要感受多态,建议还是用经典的shape哦
      

  2.   

    看看这个才是你要的多态:
    class Test{
    public String toString(){
        return "Test";
     }
    }class Test1 extends Test{
    public String toString(){
        return "Test1";
       }
    }
    class Test2 extends Test{
    public String toString(){
        return "Test2";
    }
    }public class TestDuoTai{
    public static void main(String[] args){
    Test[] test=new Test[2];
    test[0]=new Test1();
    test[1]=new Test2();
        for(int i=0;i<2;i++){
    String s=test[i].toString();
    System.out.println(s);
    }
    }
    }
      

  3.   

    也可以这样:
    class Test{
    public String toString(){
        return "Test";
     }
    }class Test1 extends Test{
    public String toString(){
        return "Test1";
       }
    }
    class Test2 extends Test{
    public String toString(){
        return "Test2";
    }
    }public class TestDuoTai{
      static Object[] o=new Object[]{new Test1(),new Test2()};//注意一定要加static!
    public static void main(String[] args){
        for(int i=0;i<2;i++){
    String s=o[i].toString();
    System.out.println(s);
    }
    }
    }