앞에 포스팅한 추상 클래스와 이어지는 내용이다.

 

c++은 다중 상속언어로 언어적으로 인터페이스를 지원하지는 않는다.

단, 자바는 추상클래스의 경우는 abstract 키워드, 인터페이스의 경우는 interface 키워드를 사용한다.

 

그렇다면 C++ 사용 시, 인터페이스와 추상 클래스의 차이는 없는 걸까?

그렇지 않다. 모호하지만 엄격하게 설명하자면 다음과 같다.

 

추상 클래스는 '생성자, 멤버 변수, 일반 메소드'를 자유롭게 포함할 수 있으며, 여기에 1개 이상의 추상 메소드가 포함되어져 있으면 된다.

 

그러나,  인터페이스는 '추상 메소드'만으로 이루어져 있다.

 

예제 코드로 비교해보자. (c++)

 

[추상 클래스 예제]

 

 

 

[인터페이스 예제]

 

 

Posted by miniature88
,