什么是多态??
1.多态性(polymorphism)据说最早来自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象的语言(OOP)中,其实就是一种“接口”,多种实现(方法)。
2.多态可以分为静多态和动多态,具体的分类如下:
3.静多态和动多态的区别:
其实只是区别什么时间将函数实现和函数调用关联起来,是在编译期还是在运行期,即函数地址是在早绑定还是晚绑定的??
①静多态是指在编译期就可以确定函数的调用地址,并产生代码,这就是静态的,也就是说地址是早早绑定的,静多态往往也被叫做静态联翩。
②动多态则是指函数调用的地址不能在编译期间确定的,必须要在运行时才能确定,这就属于晚绑定,动多态往往也被叫做动态联翩。
4.具体实现
静多态往往是通过函数重载和模板(泛型编程)来实现,具体 见一下代码:
//两个函数构成重载的静多态
int add(int a,int b)
{
return a + b;
}
double add(double a,double b)
{
return a + b;
}
//构成函数重载的条件:相同函数名
//函数模板(泛型编程)
template <typename T>
//temolate<class T>
T add(T a,T b)
{
return a + b;
}
多态存在的意义
C++中的几大特性:继承,封装,多态。封装可以是的代码模块化,继承可以使在原有的代码基础上扩