规范中说到:list是一个接口,而ArrayList实现了List接口,为什么我不能用ArrayList的一个对象直接调用List的方法并把结果存储到ArrayList的对象中呢,非要把结果存储到List对象中呢,再说List只是一个接口,应该没有实例生成的吧;
解决方案 »
- 高分!java 根据第一个文件内容从第二个文件读取
- 求安卓高手解决
- 请问JAVA的Callback和CallbackHandler怎么用
- 定义double dara[1000000][100]会不会出事?
- 从数据库中读取多记录表时的速度问题,请教
- 如何用Jtable显示数据库里的数据,并可以添加,删除数据后,更新显示?(40分全送上)
- 新手关于GUI的一些问题
- 这句话URL url=new URL(new URL("http://www.abc.com")"/java/intro/")怎么理解?
- 关于异常的捕获
- 如何在一段程序同步几个变量??
- 求一个用JAVA编写的图书管理系统的源代码
- java调用oracle的存储过程时参数的问题。
你的问题涉及多态,为什么要List list=new ArrayList();必然有它的妙处。
啃书!!!
就是父类调子类的 而子类是不能调父类的!
就比如说 你只能继承你父亲的财产,而不能继承他的所有把!!
嘎嘎!
你也可以ArrayList a = new ArrayList();
但根据对象原则不提倡吧!
如果你直接用arraylist的话,你定义的变量就只能传入形参是arraylist的函数里了
就是说,定义成list的变量,可用的范围(不是指作用域)更大
someList.add()...记得啊!就是这么个固定用法,深究这个,浪费时间。
就像说,动物和人,LZ是人,所以楼主也是动物。
动物 a = new 人()
人 p = new 人()
这里a是声明一个引用,它引用一个动物的对象;p声明一个对人的引用。但实际上人也是动物,
所以让a=new 人(); 就是说a代表一个动物,而具体是什么动物我不去管它。而p就明确了,只是一个人。所以在只知道a是一个动物的情况下,只能调用a的动物方法。如果你知道a不仅是动物而且还是一个人类,那就可以把它转型为更具体的人类型,就可以调用人的行为(方法)了。
List list=new ArrayList();声明的list类,只能使用List接口里声明的方法,而不能使用
ArrayList自带的方法.
为什么要这么写,你只需要知道list就是个实现了List接口的类的一个实例而已。不需要知道太多,多看几遍《think in java》中的RTTI对你有好处~~