接着引用楼上的 List list2 = new ArrayList(); 好处是代码易于维护 当你想 把奶牛换成黄牛就换成黄牛,想换成水牛就换成水牛
建议多看看JAVA基础书。 他们之间的区别有重要。 特别对于要设计程序的人员来说。
面向接口编程,而不是实现类。这样可以提供灵活性。当只需要List接口提供的方法是,你应当总是使用List list = new ArrayList(),然后操做list。
顶! 假如有个方法public List f(){},里面可以return new ArrayList();也可以return new LinkedList();如果你写成 public ArrayList f(){};的话就只能返回new ArrayList()了,面向接口编程!
说的通俗一点 ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/ List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展
说的通俗一点 ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/ List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展
多态运用!! 个人比较喜欢 Collection c = new ArrayList();创建拓展性好!
牛不全是奶牛
奶牛是牛
List list2 = new ArrayList();
好处是代码易于维护
当你想 把奶牛换成黄牛就换成黄牛,想换成水牛就换成水牛
假如有个方法public List f(){},里面可以return new ArrayList();也可以return new LinkedList();如果你写成
public ArrayList f(){};的话就只能返回new ArrayList()了,面向接口编程!
ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/
List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展
他就是向上转形,,
ArrayList 是 list的实现,,
所以用ArrayList 来向List转形,,然后list来使用
list是牛, arrayList是奶牛
ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/
List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展