作者guestciel (mm)
看板java
标题Re: [问题] 宣告成List跟ArrayList的不同
时间Tue Sep 1 23:56:11 2009
※ 引述《inventorr (风之子)》之铭言:
各位大大 小弟想请教一下:
List list1 = new ArrayList();
ArrayList list2 = new ArrayList();
我想建立一个ArrayList物件
但list1用interface宣告 list2用类别宣告
这样在实际应用有什麽区别 可否举例说明一下
大谢 ^_^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.125.177.17
1F:推 PsMonkey:list1 只能当作 List 用 08/31 14:16
2F:→ PsMonkey:两者差异,通常设计 method 参数的时候才会有感觉.... 08/31 14:17
用推文太麻烦了...刚好今天话多解释一下上面这段好了..(我猜测板大的意思啦~)
应是如果一个method的参数宣告为List
就代表可以吃所以实作List的类别(ex:ArrayList, Vector...)弹性较大...
还有个很好的例子就是 Object class..
可多研究一下API...想一下method们为何会这样设计...
如有误请见谅^^"
3F:→ inventorr:但是list1不是应该也能用Arraylist里的method跟属性吗? 08/31 18:27
4F:→ inventorr:除了method传参数型别外 还有其他不同吗? 08/31 18:30
5F:→ aids61517:list1只能使用List有的方法,但实际执行内容是ArrayList 08/31 19:41
6F:→ aids61517:中的方法,如果List没有,而ArrayList有的方法,list1 08/31 19:43
7F:→ aids61517:去使用那个方法,会产生错误讯息 08/31 19:44
8F:推 slalala:请参考继承本观念 08/31 21:37
9F:推 slalala:哀呀 不是继承 应该是实作QQ 08/31 21:46
10F:→ inventorr:了解了 :) 09/01 04:11
11F:→ etman395:这是多型的概念 09/01 15:18
12F:推 XXOO:所以是说如果要用ArrayList才有(List没有)的方法,一定要宣告 09/01 17:09
13F:→ XXOO:成ArrayList list2 = new ArrayList(); 是这样吗-.-? 09/01 17:11
14F:推 PsMonkey:==.==== 请多 try 程式码 09/01 17:56
15F:→ aids61517:楼楼上,是的,这个是多型的观念 09/01 21:16
16F:推 marcX:instanceof 判断型态後再case成ArrayList也是可行的! 09/01 21:28
17F:推 guestciel:好处等你长大就会懂了<-很玄...但是真的Orz... 09/01 23:29
18F:推 guestciel:另你推文的问题楼上是正确答案..白话的关键字是"转型" 09/01 23:33
19F:→ guestciel:简单例子..一般员工和主管都继承职员抽象类别..在新增员 09/01 23:36
20F:→ guestciel:工或主管时都习惯宣告成职员类别..最直接的好处是可以 09/01 23:39
21F:→ guestciel:放在一个阵列里用回圈处理.. 09/01 23:40
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.204.119.66
※ 编辑: guestciel 来自: 123.204.119.66 (09/02 00:17)