자 이제는 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
묻지도 따지지지도 말고 걍 외우자 ㅡ.ㅡ;
이 녀석의 목적은 이렇다. 말그대로 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 |