앞에 포스팅한 추상 클래스와 이어지는 내용이다.
c++은 다중 상속언어로 언어적으로 인터페이스를 지원하지는 않는다.
단, 자바는 추상클래스의 경우는 abstract 키워드, 인터페이스의 경우는 interface 키워드를 사용한다.
그렇다면 C++ 사용 시, 인터페이스와 추상 클래스의 차이는 없는 걸까?
그렇지 않다. 모호하지만 엄격하게 설명하자면 다음과 같다.
추상 클래스는 '생성자, 멤버 변수, 일반 메소드'를 자유롭게 포함할 수 있으며, 여기에 1개 이상의 추상 메소드가 포함되어져 있으면 된다.
그러나, 인터페이스는 '추상 메소드'만으로 이루어져 있다.
예제 코드로 비교해보자. (c++)
[추상 클래스 예제]
[인터페이스 예제]
'디자인패턴' 카테고리의 다른 글
Builder Pattern, 빌더 패턴, JAVA (0) | 2020.01.23 |
---|---|
가상 함수 & 추상 클래스, C++ (2) | 2012.11.21 |
Observer Pattern, 옵저버 패턴, C++ (0) | 2012.06.23 |
Iterator Pattern, 이터레이터 패턴, C++ (1) | 2012.06.23 |
Command Pattern, 커맨드 패턴, C++ (2) | 2012.06.01 |