下列代码中,s1->draw(); 和 s2->draw();输出不同结果的主要原因是( )。

class Shape {public:   virtual void draw() {      cout << "绘制图形" << endl;   }    virtual ~Shape() {}}; class Circle : public Shape {public:   void draw() override {      cout << "绘制圆形" << endl;   }}; class Rectangle : public Shape {public:   void draw() override {      cout << "绘制矩形" << endl;   }}; int main() {   Shape* s1 = new Circle();   Shape* s2 = new Rectangle();    s1->draw();   s2->draw();    delete s1;   delete s2;   return 0;}
填写答案