[c++] 추상 클래스의 오버라이딩과 다형성

C++에서 추상 클래스는 순수 가상 함수를 가지고 있는 클래스를 말합니다. 이러한 클래스는 객체를 생성할 수 없으며, 다른 클래스에서 이러한 순수 가상 함수를 오버라이딩하여 구현해야 합니다.

순수 가상 함수와 추상 클래스

추상 클래스는 하나 이상의 순수 가상 함수를 가지고 있어야 합니다. 순수 가상 함수는 선언만 하고 정의는 제공하지 않는 가상 함수를 의미하며, 다음과 같이 선언됩니다.

class AbstractClass {
public:
    virtual void pureVirtualFunction() = 0;
};

위의 예시에서 pureVirtualFunction은 순수 가상 함수로, = 0으로 정의되어 있습니다. 이 클래스를 추상 클래스라고 합니다.

오버라이딩과 다형성

다른 클래스에서 추상 클래스를 상속받을 때, 상속받은 순수 가상 함수를 오버라이딩하여 구현합니다. 이를 통해 다형성을 구현할 수 있으며, 다양한 클래스가 동일한 인터페이스를 갖게 됩니다.

class ConcreteClass : public AbstractClass {
public:
    void pureVirtualFunction() override {
        // 구현 코드 작성
    }
};

위 코드에서 ConcreteClassAbstractClass를 상속받고, 순수 가상 함수 pureVirtualFunction을 오버라이딩하여 구현하고 있습니다.

결론

C++에서 추상 클래스를 사용하여 다형성을 구현하기 위해서는 순수 가상 함수를 정의해야 합니다. 이후 이를 상속받은 클래스에서 이를 구현함으로써, 추상 클래스의 다형성을 활용할 수 있습니다.

참고문헌: cplusplus.com - Abstract Base Classes