Java问题:(List)new ArrayList()与List list = new ArrayList()等价吗?
2个回答
展开全部
跟你说:
new 什么的就是创建一个对象,要知道是创建一个对象,也就是说这个对象是固定的,把它当成存在的这么一个东西。那就是说强制类型转换只是把这个对象当成它父类所应有的属性和方法来调用。你可以调试看一下,Object o = new ArrayList();在调试量变那里看到o其实就是ArrayList 而现在只是能调用Object的方法或属性,也就是ArrayList的一部份方法或属性
new 什么的就是创建一个对象,要知道是创建一个对象,也就是说这个对象是固定的,把它当成存在的这么一个东西。那就是说强制类型转换只是把这个对象当成它父类所应有的属性和方法来调用。你可以调试看一下,Object o = new ArrayList();在调试量变那里看到o其实就是ArrayList 而现在只是能调用Object的方法或属性,也就是ArrayList的一部份方法或属性
追问
如果List中有个test方法,ArrayList重写了这个方法,那么((List)new ArrayList()).test()调用的是子类的方法还是父类的方法呢?为什么?
追答
不要去想子类父类,你就想一个对象.test();你要想的话,就告诉你是子类吧。要调父类一般都是要在ArrayList里面写super.test();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询