인터페이스는 객체가 가져야 하는 속성과 메서드를 정의한다.
☑️ 구현부 제공 여부
- 추상 클래스
- 인터페이스
- 객체의 구조만을 정의하고 기본 구현을 제공하지 않습니다.
☑️ 상속 메커니즘
- 추상 클래스
- 인터페이스
- 다중 상속을 지원합니다.
- 즉, 하나의 클래스는 여러 인터페이스를 구현할 수 있어요!
☑️ 구현 메커니즘
- 추상 클래스
- 추상 클래스를 상속받은 자식 클래스는 반드시 추상 함수를 구현해야 합니다.
- 인터페이스
- 인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 메서드를 전부 구현해야 합니다.
☑️ 언제 쓰면 좋을까요?
- 기본 구현을 제공하고 상속을 통해 확장하는데 초점을 맞추고 싶다면 →
추상 클래스
- 객체가 완벽하게 특정 구조를 준수하도록 강제하고 싶다면 →
인터페이스