상속, 재정의, 가상함수(동적 바인딩)
사용시는 업캐스팅 해서 사용해야함
- 다형성의 구현 단계와 사용단계
virtual void draw() = 0;
- 순수 가상 함수.
하지만 이런 클래스는 객체를 생성할 수 없다.
완전치가 않아서. - > 추상 클래스.
- 추상 클래스(abstract class): 순수 가상 함수를 하나라도 가지고 있는 클래스
소스 코드의 예
class Shape {
protected:
int x, y;
public:
…
virtual void draw() = 0;
};
class Rectangle : public Shape {
private:
int width, height;
public:
void draw() {
cout << "Rectangle Draw" << endl;
}
};
추상 클래스를 인터페이스로