Java官方已经在Stack类中注明了不推荐使用Stack类来实现栈。 但为什么不推荐使用Stack这个类呢?这个类最大的问题源于继承了 Vector 类,因此Stack类也继承了Vector类的所有公有方法。而Vector类是有能力在数组中的任何位置添加或者删除元素的,因此Stack 也有这个能力。但很明显,栈不应该具有在任何位置添加或者删除元素的能力,封装的一大意义,就是向用户屏蔽用户不需要的操作。否则,用户可能会有意无意地调用这些操作,造成很多不必要的BUG。