请问List = new AraayList(20);
是不是 向下转型?  比List多那那些东西?

解决方案 »

  1.   

    List lists= new AraayList(20);
    这个叫向上转型! 因为ArrayList实现了List接口!至于其他的,自己看一下文档就好了!
      

  2.   

    只是可见性,并没有多出来什么,因为只有它本身就是 ArrayList 或子类 才能成功,如果他本来不是ArrayList 或子类实例  ,你去执行  Cast Down 就会得到 ClassCastException .List list = new AraayList(20); //自动向上 转型,
    ArrayList arrayList = (ArrayList) list; // 向下转回来。只有当它本身 instanceof ArrayList 才能成功,否则 ClassCastException .  Cast 本身并不改变对象实例,只是让代码看不到某些不是目标类型就看不到的东西。
      

  3.   

    但是还是可以用 RTTI / Reflect 来访问 属性和方法。