我对OOP概念有愚蠢的问题,我们选择多态的原因是什么?
C++中的简单代码:
class Shape{
public:
virtual void draw(){ cout<<"Shape"<<endl;};
};
class Traingle: public Shape
{
public: void draw(){cout<<"Triangle"<<endl;}
};
class Rectangle: public Shape
{
public: void draw (){cout<<"Rectangle"<<endl;}
};
int main(){
Shape *ptr= new Traingle();
ptr->draw();
delete ptr;
return 7;
}
Run Code Online (Sandbox Code Playgroud)
这里ptr-> draw()函数会调用Triangle绘制,如果指向Rectangle然后是Rectangle draw,这是后期绑定.
创建Base类指针并将其指向不同类的必要性是什么?我们可以创建单独的类对象而不需要任何虚函数,并且可以调用whicever.喜欢
int main(){
Traingle tObj;
tObj->draw();
Rectangle rObj;
rObj->draw();
}
Run Code Online (Sandbox Code Playgroud)
基本上做同样的事情;
为什么多态基本上?为什么虚拟?
它有什么需要或者使用这个属性有什么区别?真实案例会有所帮助!!