홈 › 중급 › 02 / 9

추상 클래스 vs 인터페이스

섹션 7진행 0 / 9

7. 정리

  • 추상 클래스는 상태와 골격을 공유하는 미완성 클래스(is-a), 인터페이스는 상태 없는 순수 계약(can-do)이며 다중 구현이 가능하다.
  • 템플릿 메서드 패턴: 흐름은 부모의 final 메서드에 고정하고, 단계는 추상/훅 메서드로 자식에게 위임한다.
  • 전략 패턴: 사용하는 쪽은 인터페이스만 의존하고 구현체는 생성자로 주입받아 런타임에 교체한다. 새 기능 추가 = 클래스 추가.
  • default 메서드는 기존 구현체를 깨지 않고 인터페이스를 진화시키기 위한 것. 충돌 시 클래스 우선, 무관한 두 인터페이스 충돌은 직접 오버라이딩.
  • 변수/매개변수/반환 타입은 항상 인터페이스로. 확신이 없으면 인터페이스에서 시작하고 필요할 때 골격 추상 클래스를 추가한다.

다음 레슨 03. 예외 처리에서는 계약이 깨졌을 때, 즉 "실패"를 타입으로 표현하고 전파하는 방법을 다룬다.