压倒一切(overriding)和超载(overloading)的区别

方法重写和方法重载是一些编程语言中的两个概念/技术/特性。这两个概念都允许程序员为同名的方法提供不同的实现。方法重写允许程序员在子类中为已经在其超类中定义的方法提供另一种实现。方法重载允许程序员为具有相同名称(在同一个类中)的多个方法提供不同的实现。...

重写vs重载

方法重写和方法重载是一些编程语言中的两个概念/技术/特性。这两个概念都允许程序员为同名的方法提供不同的实现。方法重写允许程序员在子类中为已经在其超类中定义的方法提供另一种实现。方法重载允许程序员为具有相同名称(在同一个类中)的多个方法提供不同的实现。

什么是压倒性的?

如上所述,在面向对象编程语言中,类可以扩展超级类或父类。子类可以有自己的方法,也可以选择对父类(或其一个父类)中已定义的方法有自己的实现。因此,当后者发生时,称为方法重写。换句话说,如果子类提供了一个方法的实现,该方法的签名和返回类型与父类中已定义的方法相同,则该方法将被子类的实现覆盖(替换)。因此,如果类中存在重写的方法,运行时系统将必须决定使用哪个方法实现。通过查看用于调用它的对象的确切类型,可以解决此问题。如果父类的对象用于调用重写的方法,则使用父类中的实现。类似地,如果它是使用的子类的对象,则使用子类的实现。现代编程语言如java、Eifell、C++和Python允许方法覆盖。

什么是超载?

方法重载是一些编程语言提供的一种功能,用于创建多个具有相同名称但具有不同输入和输出类型的方法。在现代编程语言中,如java、C++、C++和VB.NET版,此功能可用。可以通过创建另一个名称相同但方法签名不同或返回类型不同(或两者都有)的方法重载方法。例如,如果method1(type1t1)和method1(type2t2)在同一个类中,那么它们将重载。然后系统将必须决定在调用它时要执行哪一个。这种区别是通过查看传递给方法的参数类型来实现的。如果参数是类型1,则调用第一个实现;如果参数是类型2,则调用第二个实现。

重写和重载之间有什么区别?

虽然方法重写和方法重载用于提供具有不同实现的方法,但这两个概念/技术之间存在关键区别。首先,方法重写的主题始终位于不同的类中,而方法重载的主题则位于同一个类中。这意味着重写只能在允许继承的面向对象编程语言中实现,而重载也可以在非面向对象语言中使用。换句话说,您重写了超类中的方法,但在自己的类中重载了方法。

  • 发表于 2020-11-04 08:57
  • 阅读 ( 89 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

...时,称为重载。它也被称为静态绑定或编译时多态性。 压倒一切 另一种多态性是重写的。参考下面用Java编写的程序。 图02:覆盖 根据上面的程序,在类a中有一个方法display(),类B是从类a扩展而来的,因此类a中的所有方法都...

  • 发布于 2020-10-19 21:16
  • 阅读 ( 555 )

超载(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
  • 阅读 ( 203 )

佐伊·奎因希望我们建立更好的社区,开性玩笑,拯救互联网

...造者,也是最著名的DIY电子人之一。她是反骚扰组织Crash Override的联合创始人,目前正与荒诞色情作家查克•丁格尔(Chuck Tingle)合作开发一款全动态视频约会游戏。但自2014年以来,她的工作经常被Gamergate蒙上阴影:奎因复仇心...

  • 发布于 2021-05-29 20:50
  • 阅读 ( 112 )

焦虑(anxiety)和抑郁(depression)的区别

...者中很常见,身体感觉好像在攻击自己,当一个人被焦虑压倒时,这种情况也很常见。当一个人似乎放弃了生活时,就怀疑他得了抑郁症。那些对生活感到悲伤、愤慨、似乎对周围的人不感兴趣的人表现出抑郁的症状。有些人患...

  • 发布于 2021-06-23 09:45
  • 阅读 ( 246 )

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

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

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

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

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

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

函数重载(function overloading)和C++中的重写(overriding in c++)的区别

...决定了调用函数的哪个版本。 函数间重载(between function overloading)和C++中的重写(overriding in c++)的区别 C++中函数重载是编译时多态性,而C++中的函数重写是运行时 重载中有一个特定的关键字,而“Virtual”是函数重写中的一个特定...

  • 发布于 2021-07-08 11:14
  • 阅读 ( 343 )

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

...raw方法覆盖Source1类中定义的绘图方法。 方法重载(method overloading)和方法覆盖(method overriding)的区别 在方法重载中,方法必须具有不同的签名。在方法中,重写方法必须具有相同的签名。 函数重载是对方法的行为进行更多的“...

  • 发布于 2021-07-08 17:55
  • 阅读 ( 269 )
k1529147266
k1529147266

0 篇文章

相关推荐