我是Java新手。我想知道何时应该使用基类的引用以及何时应该创建一个新对象。我的意思是我们可以写
List list = new ArrayList();
以及何时
ArrayList list = new ArrayList();
如何确定使用什么???
答案 0 :(得分:4)
使用
List list = new ArrayList();
始终学习使用界面编程。明天你可以有新的实现
答案 1 :(得分:4)
除了@Jigar,我的建议是使用这种方式进行类型安全
List< T > list = new ArrayList< T >();
答案 2 :(得分:4)
可以同时使用两者,但前者是首选,因为使用对接口或超类型(List)的引用调用实现的方法总是更好。前者不依赖于实现,并且在实现(ArrayList)更改时无需更改代码,但后者要求您在实现更改为ArrayList以外的任何内容时更改代码。
答案 3 :(得分:2)
通常没关系。接口只定义了一组可以在对象上调用的方法:即对象implements
接口。什么时候重要的是你可能有多个接口实现。假设您有一个方法可以对实现Vehicle接口的对象执行某些操作:
public static double getSpeed(Vehicle vehicle) {
return vehicle.getSpeed();
}
您想要传递界面,因为您不关心对象是汽车还是面包车或其他任何东西,并且您希望此方法适用于此界面的所有实施 - 即所有类型的车辆。它们都实现了Vehicle接口,因此您知道可以调用getSpeed()方法。如果你这样做了:
public static double getSpeed(Car car) {
return car.getSpeed();
}
那么你的方法不适用于货车或货车,即使它们都实现了车辆接口,因此它们都有.getSpeed()方法。