我是Java新手。我想知道什么时候应该使用基类的引用,以及何时应该创建一个新对象。我的意思是,我们可以写何时应该在声明新对象时使用接口与实现?
List list = new ArrayList();
当
ArrayList list = new ArrayList();
如何确定使用什么???
我是Java新手。我想知道什么时候应该使用基类的引用,以及何时应该创建一个新对象。我的意思是,我们可以写何时应该在声明新对象时使用接口与实现?
List list = new ArrayList();
当
ArrayList list = new ArrayList();
如何确定使用什么???
它的确定同时使用,但前者是首选,因为它总是更好地调用实现的方法使用对Interface或超类型(List)的引用。前者不依赖于实现,并且在实现(ArrayList)更改时不需要更改代码,但后者需要您在实现更改为ArrayList之外的任何其他位置时更改代码。
使用
List list = new ArrayList();
永远学习与接口进行编程。明天你就可以有新的实施
加成@Jigar我的建议是用这种方式类型安全
List<T> list = new ArrayList<T>();
通常没关系。一个接口只定义了一组可以在对象上调用的方法:对象implements
接口。重要的是当你可能有多个接口的实现时。比方说,你必须做一些事,实现车辆接口的对象的方法:
public static double getSpeed(Vehicle vehicle) {
return vehicle.getSpeed();
}
你想通过界面四周,你不关心的对象是汽车或面包车或什么的,并且您希望此方法适用于此界面的所有实施 - 即所有类型的车辆。他们都实现了Vehicle接口,所以你知道你可以调用getSpeed()方法。如果你这样做:
public static double getSpeed(Car car) {
return car.getSpeed();
}
那么你的方法不会为货车或卡车的工作,尽管他们都实现了车辆接口,因此双方都.getSpeed()方法。
获取http://www.wrox.com/WileyCDA/WroxTitle/Ivor-Horton-s-Beginning-Java-2-JDK-5-Edition.productCd-0764568744.html和几袋咖啡(豆类) 。 – Augusto 2011-02-14 11:18:33
[List vs ArrayList]可能的重复(http://stackoverflow.com/questions/4062982/list-versus-arraylist) – Epaga 2011-02-14 11:19:30