추상 클래스
- 클래스 내 '추상 메소드'가 하나이상 포함되거나 abstract로 정의된 경우
- 상속 받는 클래스 안에 있는 추상 메소드를 구현하도록 강제한다
인터페이스
- 모든 메소드가 추상 메소드인 경우
- 구현 하는 인터페이스 안에 있는 추상 메소드를 구현하도록 강제한다
추상 클래스와 인터페이스의 서로 다른 존재 목적
- 추상 클래스 : 그 추상 클래스를 상속 받아서 기능을 이용하고 확장 시키는데 목적이 있다
- 인터페이스 : 함수의 껍데기만 있는데, 그 함수의 구현을 강제함으로써 구현 객체의 같은 동작을 보장