List l=new ArrayList()这么写
比ArrayList l=new ArrayList() 这么写
显得你更专业,面试你的人 会觉得你这个人 更高。作者: 匿名 时间: 2011-7-21 10:49
将变量声明为父类是为了让代码有更好的可扩展性,因为一个项目未来可能会应对不同客户的需求进行不同的修改,这时候便需要继承这个类或是方法或是实现接口,如果这是你需要继承这个类,那么有可能还需要更改父类的代码,会增加更大的工作量,而且也降低了代码的安全性。作者: 董俊霞 时间: 2011-7-21 10:51
List l=new ArrayList() 比 Arraylist l=new ArrayList()灵活,
下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class TestCollection {
public static void main(String[] args) {
System.out.println("开始:");
String a = "A", b = "B", c = "C", d = "D", e = "E";
List<String> list = new ArrayList<String>();
list.add(a); // 索引位置为 0
list.add(b); // 索引位置为 1
list.add(c); // 索引位置为 2
list.add(d); // 索引位置为 3
list.add(e); // 索引位置为 4
list = list.subList(1, 3);// 利用从索引位置 1 到 3 的对象重新生成一个List集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("结束!");
}
}
输出如下信息:
B
C
主要体现了接口的使用使得方法的描述说明和方法功能的实现分开考虑,这有助于降低程序的复杂性,使程序设计灵活,便于扩充修改。这体现了java的多态性。
[ 本帖最后由 董俊霞 于 2011-07-21 11:15 编辑 ]作者: 匿名 时间: 2011-7-21 15:01
多态
接口实例化和对象实例化的区别
如果你要使用反射机制最好是用list l = new arraylist()这种形式
如果不用反射,那都是一样的
不过在实际的工程应用中最好使用list l = new arraylist()这种形式
比如你想定义dog和cat两个类,最好是先设计出一个animal接口然后用通过dog和cat实现,使用的时候也类似
list l = new arraylist(),这样会比直接dog d =new dog()好的多……