2. Which design pattern is used in the following code?

class Shape
{
public:
    virtual double area() const = 0;
    virtual ~Shape() { }
};

namespace third_party
{

class Polygon
{
public:
    double calculate_area() const;
};

}

class Polygon
    : public Shape
    , public third_party::Polygon
{
public:
    double area() const
    {
        return calculate_area();
    }
};