靜態多態與動態多態

多態的字面含義:具備多種不一樣的形態。算法

關鍵字:重載/模版和虛函數編程

類型:編譯期多態(靜態多態,早綁定)和運行期多態(晚綁定)ide

編譯期多態(重載/模版):函數

重載對象

int getMax(int param1,int param2);接口

double getMax(double param1,double param2);get

模版:it

template<typename T>編譯

T getMax(T param1,T param2)class

{

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();

}

總結:

應用形式上:

靜多態是發散式的,讓相同的實現代碼應用於不一樣的場合。

動多態是收斂式的,讓不一樣的實現代碼應用於相同的場合。

思惟方式上:

靜多態是泛型式編程風格,它看重的是算法的普適性。

動多態是對象式編程風格,它看重的是接口和實現的分離度。

相關文章
相關標籤/搜索