추상클래스 : 확장
- 상속은 확장
- 내부의 기능 확장을 위해 존재
- 상속관계를 타고 올라갔을 때, 같은 부모를 상속하는데 완전히 똑같은 기능이 필요한 경우에 사용
인터페이스 : 구현의 강제
- implement는 구현의 강제
- 정의된 함수들의 구현을 강제하기 위해 사용
- 구현을 강제해 인터페이스 구현한 객체의 같은 동작 보장이 가능
- 상속관계를 타고 올라갔을 때, 다른 부모 클래스에 같은 기능이 필요한 경우
- 서로 관련성이 없는 클래스들이 인터페이스를 구현한 경우에 사용 => 특정 데이터 타입 행동에 대한 명시를 원할 때 어디서 그 행동 구현되는지 신경 x 경우에 사용
출처, 참고 :
https://syoun602.tistory.com/7