我想知道什么时候应该使用接口.
让我们考虑以下事项:
public abstract class Vehicle {
abstract float getSpeed();
}
Run Code Online (Sandbox Code Playgroud)
并且:
public interface IVehicle {
float getSpeed();
}
Run Code Online (Sandbox Code Playgroud)
我可以很容易地实现它们,它们具有相同的功能......但是我也可以在我的车辆类中添加一些变量,这些变量可能应该用在车辆中(maxSpeed,carType ......)
使用接口的原因是什么?
谢谢!
编辑:我在另一个帖子中找到了一个很好的链接:http://www.thecoldsun.com/en/content/01-2009/abstract-classes-and-interfaces
我想知道为什么我不能从列表中删除元素,当我使用 foreach 循环迭代它时:
List<Object> objects = new ArrayList<Object>();
Object one = new Object();
Object two = new Object();
Object three = new Object();
objects.add(one);
objects.add(two);
objects.add(three);
Run Code Online (Sandbox Code Playgroud)
然后删除元素,如:
foreach(Object o : objects){
objects.remove(three); //I know that o is my current object
}
Run Code Online (Sandbox Code Playgroud)
似乎 foreach 循环不允许删除循环队列中“静止”的对象。我对么?
为什么 for-int-loop 不关心这个?在这个循环中,我可以轻松删除仍在循环中的对象。
谢谢