重载和覆盖都是大多数编程语言的功能。重载是一项功能,它允许在相同的类中创建多个具有相同名称的方法,但在函数的输入类型和输出类型方面彼此不同。方法重载通常与在函数调用中强制执行类型检查的静态编程语言关联。这些最有可能与VB,.Net,C++,D,Java等相关。覆盖是面向对象编程的一项主要技能,当用户重新定义已在现有类或父类中定义的方法时,覆盖就可以完成。在这种编程技术中,脚本被编码为执行特定的任务,方法是允许以较低或子类编写的脚本实现已在任何父或上级类中列出的方法或指令集。
在计算机程序设计中,重载源自一种方法,该方法在同一范围内具有多个定义,并具有相同的名称但签名不同。方法实现共享相同的名称,因为它们将执行类似的任务。由于覆盖被认为是多态的情况,因此也被识别出来,在覆盖中,某些或所有运算符可以具有不同的实现,具体取决于其指定的参数类型。覆盖取决于基类函数的外观。语言覆盖功能允许子类实现其父类或父类之一已使用的方法,并允许子类方法分配与超类中使用的被覆盖方法相同的名称,参数列表以及返回类型或签名拥有。
重载是非常实用的,因为它允许程序员编写碰巧具有相同名称的许多不同方法。重载可能会对某种语言造成影响,因为在运行时,处理器会更改所有重载方法的名称。它在编译时解决。覆盖是一种多态性,它是在运行时解析的隐式第一个参数的基础上设计的。
总结
- 术语:重载通常与静态编程语言相关联,并且在面向对象编程中覆盖已广受欢迎。
- 将具有相同方法名称且签名不同的类中的方法指定为重载方法。具有相同方法名称和相同参数/签名的类中的方法重写。
- 重载在同一类中可用的方法之间共享一个统一的关系,而在覆盖中,将创建超类方法和子类方法之间的关系。
- 覆盖允许从超类继承。
- 在覆盖中,子类方法代替了超类中的方法。
- 重载必须具有不同的方法签名,而覆盖必须分配相同的签名。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:重载和覆盖
本文链接:https://www.vsdiffer.com/vs/overloading-vs-overriding.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。