[Java] 추상 클래스(Abstract Class) vs 인터페이스(Interface)
"둘 다 구현 못 하는 거 아닌가요?""추상 클래스와 인터페이스의 차이가 뭔가요?"라고 물으면, 대부분 이렇게 답합니다."추상 클래스는 일부 구현이 가능하고, 인터페이스는 구현이 없는 것 아닌가요?" 틀린 말은 아니지만, 이 대답은문법 수준의 차이만 설명할 뿐 설계 의도의 차이를 전혀 담고 있지 않습니다.이 글에서는 문법 차이를 넘어, 두 개념이 객체지향 설계에서 어떤 역할을 하고, 어떤 사고방식으로 선택해야 하는지를 하나씩 짚어 보겠습니다. 1. 추상 클래스 "is-a" vs 인터페이스 "can-do"1-1. 추상 클래스: "너는 ~이다" (is-a)추상 클래스의 본질은 분류(classification) 입니다. "이 객체가 본질적으로 무엇인가?"를 정의합니다.예를 들어, Dog, Cat, Bird는 ..
IT/Java
2026. 3. 6. 18:30
