多态的好处:
易于扩展,便于维护。如:下面实现的计算器,如果想要加个除法,不需要动原来的代码。
只需单独再写一个除法类继承抽象类 AbstractCalculator即可。
代码
#include<iostream>
using namespace std;
class AbstractCalculator
{
public:
int m_Num1;
int m_Num2;
virtual int getResult()
{
return 0;
}
};
class AddCalculator :public AbstractCalculator
{
public:
int getResult()
{
return m_Num1+m_Num2;
}
};
class SubCalculator :public AbstractCalculator
{
public:
int getResult()
{
return m_Num1-m_Num2;
}
};
class MulCalculator :public AbstractCalculator
{
public:
int getResult()
{
return m_Num1*m_Num2;
}
};
void test2()
{
AbstractCalculator* calculator = new AddCalculator;
calculator->m_Num1 = 10;
calculator->m_Num2 = 10;
cout<<calculator->getResult()<<endl;
delete calculator;
calculator = new SubCalculator;
calculator->m_Num1 = 10;
calculator->m_Num2 = 10;
cout<<calculator->getResult()<<endl;
delete calculator;
}
int main()
{
test2();
return 0;
}