我想要弄清楚一些基本的东西。当我在探索标准库ArrayList.java时,发现ArrayList有一个isEmpty()方法的实现。
ArrayList.java:
public boolean isEmpty() {
return size == 0;
}
ArrayList扩展了AbstractList,而AbstractList又扩展了AbstractCollection。AbstractCollection已经有isEmpty的实现:
public boolean isEmpty() {
return size() == 0;
}
我只是想理解这个逻辑。为什么ArrayList要实现已经实现的方法?这有什么用呢?
P.S. ArrayList也有size方法。
public int size() {
return size;
}
size
字段,而这是一种在这种情况下可用的专门化(或优化)。 - Elliott Frisch