본문 바로가기

JAVA

C++ 프로그래머 Java 맛보기 #6

자 이제는 COM 에서나 나오던 interface 이다. C 만 하시던 분들은 다소 생소할 수 있겠으나 별거 없다. C++ 에서 interface 는 그저 struct 를 typedef 해둔 놈일 뿐이니 말이다.

이 녀석의 목적은 이렇다. 말그대로 interface 를 제공하고 구현은 해당 interface를 상속한 class 에서 구현하는 것 java 와 비교를 하자면 이렇다.

java
interface Bicycle {
     void changeCadence(int newValue); // wheel revolutions per minute
     void changeGear(int newValue);
     void speedUp(int increment);
     void applyBrakes(int decrement);
}

C++
interface Bicycle
{
     virtual void changeCadence(int newValue) = 0; // wheel revolutions per minute
     virtual void changeGear(int newValue) = 0;
     virtual void speedUp(int increment) = 0;
     virtual void applyBrakes(int decrement) = 0;
}

역시나 별다른 차이도 없다. C++ 에선 상속된 class 에서 구현해야 하므로 pure virtual 로 되어 있는 뿐이다.

그리고 이를 상속을 받기 위해선 다음처럼 하면 된다.

java
class ACMEBicycle implements Bicycle {
// remainder of this class implemented as before
}

c++
class ACMEBicycle : public Bicycle {
// remainder of this class implemented as before
}

여기서 하나 다른점 C++ 에서는 interface 나 class 나 상속하는 방법이 동일한데 반면 java의 경우 interface 는 inplements 로 상속하고 class 는 extends 로 상속하게 되어 있다.. 그 이유는 나는 java 를 본지 일주일 밖에 안되므로 자세하게 설명을 할 순 없겠지만 다음의 링크를 보면 http://k.daum.net/qna/view.html?qid=3752G 참고가 되시겠다.

결론적으로 그냥 외워야겠다는 생각이다.

ps
class 를 class 상속 ==> extends
interface 를 class 상속 ==> implements
interface 를 interface 상속 ==> extends

묻지도 따지지지도 말고 걍 외우자 ㅡ.ㅡ;

'JAVA' 카테고리의 다른 글

C++ 프로그래머 Java 맛보기 #8  (0) 2013.09.26
C++ 프로그래머 Java 맛보기 #7  (0) 2013.09.26
C++ 프로그래머 Java 맛보기 #5  (0) 2013.09.26
C++ 프로그래머 Java 맛보기 #4  (0) 2013.09.26
C++ 프로그래머 Java 맛보기 #3  (0) 2013.09.26