2011-02-14 64 views
0

我是Java新手。我想知道什么时候应该使用基类的引用,以及何时应该创建一个新对象。我的意思是,我们可以写何时应该在声明新对象时使用接口与实现?

List list = new ArrayList(); 

ArrayList list = new ArrayList(); 

如何确定使用什么???

+0

获取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

+2

[List vs ArrayList]可能的重复(http://stackoverflow.com/questions/4062982/list-versus-arraylist) – Epaga 2011-02-14 11:19:30

回答

4

它的确定同时使用,但前者是首选,因为它总是更好地调用实现的方法使用对Interface或超类型(List)的引用。前者不依赖于实现,并且在实现(ArrayList)更改时不需要更改代码,但后者需要您在实现更改为ArrayList之外的任何其他位置时更改代码。

4

使用

List list = new ArrayList();

永远学习与接口进行编程。明天你就可以有新的实施

4

加成@Jigar我的建议是用这种方式类型安全

List<T> list = new ArrayList<T>(); 
2

通常没关系。一个接口只定义了一组可以在对象上调用的方法:对象implements接口。重要的是当你可能有多个接口的实现时。比方说,你必须做一些事,实现车辆接口的对象的方法:

public static double getSpeed(Vehicle vehicle) { 
    return vehicle.getSpeed(); 
} 

你想通过界面四周,你不关心的对象是汽车或面包车或什么的,并且您希望此方法适用于此界面的所有实施 - 即所有类型的车辆。他们都实现了Vehicle接口,所以你知道你可以调用getSpeed()方法。如果你这样做:

public static double getSpeed(Car car) { 
    return car.getSpeed(); 
} 

那么你的方法不会为货车或卡车的工作,尽管他们都实现了车辆接口,因此双方都.getSpeed()方法。

相关问题