多态与重载的区别

重载可认为是静态的多态,静态联编,发生在编译阶段

多态是动态的,动态联编,发生在运行阶段

静态的比动态的效率高,但动态的最大优点是多态性,提高代码复用性。

实现多态公有继承有两种机制

  1. 在派生类中重新定义基类方法。重新定义的方法和基类中的方法完全一致。即,函数名一致,函数的返回值类型一致,参数列表一致,只是行为不同,这就是多态公有继承;

多态必要条件:

  • 继承;
  • 参数列表和返回值必须完全一致的同名函数,即虚方法。

2 .虚方法;

函数重载的关键是什么

关 键 在 于 函数的参数列表——特征标, 参数列表指的是参数的数量参数的类型以及参数的顺序
函数的返回值类型可以相同也可以不同,但是若想实现函数的重载,参数列表必须不同。前提是函数名相同。

注意:类型引用和类型本身为同一特征标,如:void show(int i) 和 void show(int &i)不是函数的重载,是一个函数。

你可能感兴趣的:(多态与重载的区别)