인터페이스와 추상클래스의 차이는 무엇인가요?
공통점
- 두 요소의 공통점은 본문을 선언할 수 없다.
- 상속 받는 클래스에서 구현을 강요하는 요소를 포함한다.
- 직접 인스턴스화가 불가능하다.
- 다형성을 구현하는데 직접적인 도움을 준다.
차이점
- 추상 클래스는 인스턴스 필드를 가질 수 있지만, 인터페이스는 필드를 선언할 수 없다.
(인스턴스는 프로퍼티만 선언할 수 있음)
- 인터페이스는 생성자를 가질 수 없지만, 추상 클래스는 파생 클래스에서 생성자를 호출할 수 있음
- 추상 클래스에서도
abstract 키워드를 포함하지 않는 요소는 본문을 구현할 수 있으나 인터페이스는 모든 요소가 본문을 가질 수 없음