方法重载(method overloading)和覆盖(overriding)的区别

方法重载,也称为函数重载或编译时多态性,是指在同一范围内有两个或多个名称相同但签名不同的方法。有很多支持这一特性的编程语言:艾达、C++、C、D和java。...

方法重载

方法重载,也称为函数重载或编译时多态性,是指在同一范围内有两个或多个名称相同但签名不同的方法。有很多支持这一特性的编程语言:艾达、C++、C、D和java。

C中的方法重载示例#如上面的示例所示,方法“Polygon”重载3次,方法签名不同,即参数的类型或数量不同。

方法重载(method overloading)和覆盖(overriding)的区别

方法覆盖

方法重写,也称为函数重写或运行时多态性,是一种OOP特性,允许子类为父类中定义的方法提供自己的实现。子类中的实现重写基类中方法的定义,前提是子类中的方法应具有相同的名称、签名和返回类型。

在C#中重写方法的示例,Source2类中的draw方法覆盖Source1类中定义的绘图方法。

方法重载(method overloading)和覆盖(overriding)的区别

方法重载(method overloading)和方法覆盖(method overriding)的区别

  1. 在方法重载中,方法必须具有不同的签名。在方法中,重写方法必须具有相同的签名。
  2. 函数重载是对方法的行为进行更多的“添加”或“扩展”。函数重写是完全“改变”或“重新定义”方法的行为。
  3. 方法重载用于实现编译时多态性;方法重写用于实现运行时多态性。
  4. 在方法/函数重载中,编译器知道编译时将哪个对象分配给哪个类,但在方法重写中,直到运行时才知道此信息。
  5. 函数重载发生在同一个类中,而重写发生在从基类派生的类中。

  • 发表于 2021-07-08 17:55
  • 阅读 ( 268 )
  • 分类:IT

你可能感兴趣的文章

压倒一切(overriding)和c中的过载#(overloading in c#)的区别

...将全部打印Shape类的显示方法的内容。 什么是c中的过载#(overloading in c#)? 在重载中,多个方法具有相同的名称,但具有不同的参数。参数可以是不同类型的。这些方法也可以有不同数量的参数。方法重载发生在同一个类中。重...

  • 发布于 2020-10-18 23:50
  • 阅读 ( 218 )

静态绑定(static binding)和动态绑定(dynamic binding)的区别

...件。软件系统或程序中有许多对象。这些对象具有属性和方法。属性描述特征。方法描述对象可以执行的操作。数据使用方法通过对象传递。所需的值通过带有参数的方法调用发送。实际的方法实现在方法定义中。方法调用和方...

  • 发布于 2020-10-19 17:49
  • 阅读 ( 416 )

超载(overloading)和在java中重写(overriding in java)的区别

...表格形式在Java中重载与重写 6. 摘要 什么是java中的重载(overloading in java)? 重载是使用不同的实现创建同名的多个方法的能力。请参阅下面的Java代码。 图01:Java程序,解释使用不同数量的参数重载 根据上面的程序,类A包含两个...

  • 发布于 2020-10-19 21:20
  • 阅读 ( 367 )

crash override希望帮助gamergate和其他在线虐待的幸存者

...网络骚扰和虐待的幸存者正在反击。
 Crash Override是一个新的“在线反骚扰工作组”,由Alex Lifschitz和Zoe Quinn管理。奎因,游戏开发商和《抑郁探索》的创作者,是Gamergate愤怒暴徒的第一个目标,自从完全捏造她的...

  • 发布于 2021-04-28 16:53
  • 阅读 ( 202 )

超载(overloading)和覆盖(overriding)的区别

过载与覆盖 重载和重写都是大多数编程语言的特性。重载是一种特性,它允许在同一个类中创建几个具有相同名称的方法,但在函数的输入类型和输出类型方面彼此不同。方法重载通常与在函数调用中强制类型检查的静态编程...

  • 发布于 2021-06-23 10:08
  • 阅读 ( 180 )

建造师(constructor)和方法(method)的区别

构造函数和方法之间的主要区别在于,构造函数是类中的一个特殊方法,用于初始化该类的对象,而方法是执行与类关联的一组指令的过程或函数。 大多数高级编程语言都支持面向对象编程(OOP),这是一种允许程序员在计算...

  • 发布于 2021-07-01 05:24
  • 阅读 ( 248 )

继承(inheritance)和java中的多态性(polymorphism in java)的区别

...编译时多态性”。示例程序如下。 Figure 4: Java program with overriding 重载类有两个方法,其名称与sum相同。第5行中的sum方法不包含任何参数。它将两个值10和20相加,返回结果,即30,第11行的和方法得到两个参数。它添加了这两个...

  • 发布于 2021-07-01 09:50
  • 阅读 ( 430 )

贪心法(greedy method)和动态规划(dynamic programming)的区别

贪婪方法与动态规划的主要区别在于,贪婪方法的决策(选择)依赖于迄今为止所做的决策(选择),而不依赖于未来的选择或子问题的所有解。另一方面,动态规划是在前一阶段所有决策的基础上进行决策的。 算法是解决问...

  • 发布于 2021-07-01 11:12
  • 阅读 ( 448 )

班(class)和方法(method)的区别

类和方法的主要区别在于,类是创建对象的蓝图或模板,而方法是描述对象行为的函数。 编程范式是一种解释程序元素组织方式的风格。面向对象编程(OOP)是一种常见的软件开发范式。开发人员可以将软件建模为一组对象,...

  • 发布于 2021-07-01 18:06
  • 阅读 ( 267 )

静止的(static)和java中的动态多态性(dynamic polymorphism in java)的区别

...态多态性(或早期绑定)是一种在编译时解析的多态性。方法重载是静态多态性的一个例子。在方法重载中,存在同名但参数不同的方法。换句话说,有些方法具有相同的名称,但它们具有不同的数据类型和不同数量的参数。此...

  • 发布于 2021-07-01 21:17
  • 阅读 ( 306 )
z823252392
z823252392

0 篇文章

相关推荐