和记娱乐


网站导航

联系我们

和记娱乐

联系人: 

电 话:021-64057486

公司网址:http://www.happy123456789.com

   址:成都市松江区漕河泾松江新兴产业园区研展路丰产支路55号B座803室

邮编:201165


通信科技

您的当前位置: 和记娱乐主页 > 通信科技 >

多态和重载的区别是什么

发布日期:2019-09-16 07:56 来源:和记h88 发布人:和记娱乐 点击:

  如我们定义了一个动物类,动物都有一个共同的行为就是呼吸,那么把呼吸定义在基类中(这很好理解)。

  比如基于上述类我们开发一个展示动物呼吸的程序,定义了几百种动物并实现了每种动物的breathe方法,使用者通过鼠标点击决定看哪一种动物的呼吸方式。

  设计时考虑到,使用者并不是每次都想看完这几百种动物的呼吸,所以我们没有必要预先产生各种动物的对象,而只要在使用者点了某种动物后使用new操作符动态创建该对象即可,这样可以简化程序设计和节省内存空间。

  3. 多态是基于对抽象方法的覆盖来实现的,用统一的对外接口来完成不同的功能。重载也是用统一的对外接口来完成不同的功能。那么两者有什么区别呢?

  重载,是指允许存在多个同名方法,而这些方法的参数不同。重载的实现是:编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期

  多态:是指子类重新定义父类的虚方法(virtual,abstract)。当子类重新定义了父类的虚方法后,父类根据赋给它的不同的子类,动态调用属于子类的该方法,这样的方法调用在编译期间是无法确定的。

  不难看出,两者的区别在于编译器何时去寻找所要调用的具体方法,对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”;而对于多态,只有等到方法调用的那一刻,编译器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”。

      和记娱乐,和记h88,h88平台官网