By extending class Vector, Java’s designers were able to create class Stack quickly. What are
the negative aspects of this use of inheritance, particularly for class Stack?<
In addition to the main valid points mentioned above, another big problem with Stack inheriting from Vector is Vector is completely synchronized, so you get that overhead whether you need it or not (see StringBuffer vs. StringBuilder). Personally I tend to use ArrayDeque whenever I want a stack.