구현 재사용과 역할 보장 비교

상속은 부모 클래스의 실제 구현을 가져오고, 구현은 인터페이스가 요구하는 모양을 클래스가 채우게 합니다.

extends와 implements상속은 부모 클래스의 실제 구현을 가져오고, 구현은 인터페이스가 요구하는 모양을 클래스가 채우게 합니다.
extends

부모 클래스

1 · 구현 재사용 · 부모의 필드, 생성자 초기화, 메서드 구현을 자식이 물려받습니다. · 2 · 오버라이딩 · 같은 메서드를 다…

implements

인터페이스

1 · 계약 충족 · 인터페이스가 요구한 속성과 메서드를 빠짐없이 구현합니다. · 2 · 구현은 직접 작성 · 인터페이스는 타입 약속만 제공하고 실제 코드는 클래스가…

3

명확한 is-a 관계

자식이 부모의 한 종류라면 `extends`를 먼저 검토합니다.

4

역할만 맞추기

동일한 기능 계약이 필요하면 `implements`가 더 느슨합니다.

5

변경 영향 줄이기

부모 변경에 묶이면 부담이 커지므로 계약 중심 설계를 고려합니다.

핵심경험칙 코드를 물려받아 확장해야 하면 `extends`, 모양과 역할을 보장해야 하면 `implements`입니다. 둘은 함께 사용할 수 있지만 책임은 다릅니다.