우선 링크를 걸어놓겠다.
Interface
- 상태(data members), 구현(methods)을 가질 수 없다.
- 구현하는 클래스는 반드시 함수를 정의해 주어야 한다.
- 다중 상속이 가능하다.
- 클래스의 명세(specification)만 제공
Abstract Class
- 상태, 구현을 가질 수 있다.
- 다중 상속이 불가능 하다.
- 클래스의 구체적인 modelling을 제공, 즉 구체적인 구현이 가능하다.
그니까 Interface는 상관 없는 클래스들에게 공통적인 능력(ability)를 부여하는 것이고.
Abstract Class는 연관 관계가 있는 클래스들에게 공통적인 뼈대를 제공하는 것이라고 보면 된다.
Interface와 상태, 구현이 없는 Abstract Class의 차이점
interface는 여전히 다중 상속이 가능하지만 Abstract Class는 다중 상속이 불가능 하다는 점. 그리고 Abstract Class는 반드시 abstract인 함수를 override해야한다는 점.
interface는 여전히 다중 상속이 가능하지만 Abstract Class는 다중 상속이 불가능 하다는 점. 그리고 Abstract Class는 반드시 abstract인 함수를 override해야한다는 점.
댓글 없음:
댓글 쓰기