本帖最后由 阿里策 于 2013-10-23 18:53 编辑
我看视频,好像集合中没有转型之说,ArrayList<T>只能接收ArrayList<T>,不能接收其他的。你指的情况是多态吗?
如果这样写代码是可以的:- public static void main(String[] args)throws Exception
- {
- List<String> al = new ArrayList<String>();
- al.add("srgffcj");
- al.add("fgyuht");
- al.add("sp;if");
-
- //List<String> l=new ArrayList<String>();
- al = al.subList(0,al.size());//这是正确的
- //ArrayList<String> a = (ArrayList<String>)al;//这是错误的,应该是al调用subList方法后返回了一个List<T>类型
-
- }
复制代码 楼主说的是不是多态的强制转换类型啊,多态必须是父类引用接收子类对象,而且强制向下转型时,必须还转型为所接收的子类类型。
例如:Fu f = new ZiA();
ZiA z = (ZiA)f;
另外我看了一个API,发现subList方法返回的是List<T>类型,这样看来,List<T>类型是肯定转化不成其子类ArrayList类型的。不知道我理解的对不对,希望对你有帮助
|