Stack은 왜 상속의 실패 사례일까?
·
💻 Dev/Java & OOP
Java에서 Stack 클래스는 종종 "상속의 실패 사례"나 "디자인이 망가진 클래스"로 언급된다.뭐 때문인지 알아보자! Vector를 잘못 상속받았다.Stack 클래스의 가장 큰 문제는 Vector 클래스를 상속받았다는 점이다.Stack의 선언을 보면 다음과 같다.public class Stack extends Vector {Stack은 LIFO(Last In, First Out) 방식의 스택 자료구조를 구현하기 위해 설계되었지만, Vector는 일반적인 동적 배열을 나타낸다. 근데 뭐가 문제라는걸까? 🤔Stack이 Vector를 상속받았다는 것은 Vector의 모든 메서드를 사용할 수 있다는 것을 말한다. `Vector`는 일반적인 동적 배열 자료구조기 때문에 원래 스택에서는 허용되지 않을 중간에 ..