多态的字面含义:具有多种不同的形态。
关键字:编译期多态(就是重载或者模板) 和运行期多态
int getMax( int param1, int param2 );
double getMax( double param1, double param2 );这是重载
下面是模板
template<typename T>
T getMax( T param1, T param2 ){
return param1>param2?param1:param2;
}
下面是运行期多态
class Base
{
public:
virtual ~Base(){}
virtual void fun(){ cout<<"Base::fun"<<endl; }
};
class Derived:public Base
{
public:
virtual void fun(){ cout<<"Derived::fun"<<endl;
};
main()
{
Base *pB = new Derived;
pB->fun();
}
应用形式上:
静多态是发散式的,让相同的实现代码应用于不同的场合。
东多态是收敛式的,让不同的实现代码应用于相同的场合。
思维方式上:
静多态是泛型式编程风格,它看重的是算法的普适性。
东多态是对象式编程风格,它看重的是接口和实现的分离度。