1. Interface vs Abstract Class
- Interface와 Abstract Class는 상속(extends) 받거나, 구현(implements)하는 Class가 Interface나 Abstract Class 안에 있는 Abstract Method르 구현하도록 강제하는 공통점이 있다.
- 둘의 존재 목적이 다르다
2. Interface
- 공통 기능을 필요로 할때 Abstract Method를 정의해놓고 구현하는 Class가 각 기능들을 Overriding하여 여러가지 형태로 구현가능 👉 다형성과 연관
- 해당 Interface를 구현하는 Class들에 대해 동일한 method, 동작을 강제하기 위해 존재
- Interface의 implements에는 제한이 없어 다중 구현이 가능
3. Abstract Class
- Abstract Class를 상속하며 Class들 간의 구분이 가능해짐
- 모호한 클래스이며 객체의 추상적인 상위 개념으로 공통된 개념을 표현할 때 쓴다 👉 예시 : 동물에는 공통적으로 이름과 색깔이 있고 ... 여기서 동물은 추상클래스
참조: [Java] Interface vs Abstract Class 정리 | 2020년 11월 30일 | https://velog.io/@gillog