zoukankan      html  css  js  c++  java
  • 重载与覆盖的差别

         对于在同一个可訪问区内被声明的几个具有不同參数列(參数的类型、个数、顺序不同)的同名函数,程序会依据不同的參数列表来确定详细调用哪个函数。这样的机制叫重载overload),overlaod不关心函数的返回值。

          覆盖override)是指派生类中存在又一次定义的函数,其函数名、參数列、返回值类型必须同父类的相相应被覆盖的函数严格一致,覆盖函数和被覆盖函数仅仅有函数体(花括号里的部分)不同,当派生类对象调用子类中同名函数时。会自己主动调用子类中的覆盖版本号,而不是父类中的被覆盖版本号。

          成员函数被重载(overload)的特征例如以下:

    (1)同样的范围(在同一个类中) ;

    (2)函数名称同样。

    (3)參数不同;

    (4)virtualkeyword可有可无。

           覆盖(override)的特征例如以下:

    (a)不同的范围(分别位于派生类和基类之中);

    (b)函数名称同样;

    (c)參数同样;

    (d)基类函数必须有virtualkeyword。

         说明:虚函数总是在派生类中被改写,这样的改写叫做“override”.

         override是指派生类重写基类的虚函数。就像某个类中重写了还有一个类中的某个函数,重写的函数必须有一致的參数表和返回值。override----一直没有合适的中文词汇来相应。翻译为“覆盖”更贴切。

         overload约定俗成地被翻译为“重载”,是指编写一个与已有函数同名可是參数表不同的函数。比如。一个函数既能够接受整型数作为參数。也能够接受浮点数作为參数。

    重载不是一种面向对象的编程。而仅仅是一种语法规则。

    重载与多态没有直接关系。

  • 相关阅读:
    Eclipse本地创建新的GIT分支,并推送至远程Git分支
    将持久态数据转化为游离态数据代码实现
    Java根据当前日期获得昨天的当前日期代码实现
    @RequestMapping和@GetMapping区别
    炫酷的banner.txt
    小程序colorUI框架初步使用教程
    Java Spring boot element ui activiti前后端分离,流程审批,权限管理框架
    Activiti (一)
    CSS Clip 裁剪
    @SpringBootApplication的使用
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7039998.html
Copyright © 2011-2022 走看看